1 Spring Security
1.1 简介
Spring Security
是一个弱小和高度可定制的认证和管制拜访框架,是基于 Spring
利用的事实上的平安规范,次要聚焦于为 Java
利用提供受权和认证性能,次要性能如下:
- 对认证和受权的全面和可扩大反对
- 避免诸如
Session Fixation
、点击劫持、跨站点申请伪造攻打 Servlet API
集成Spring MVC
可全集成
1.2 已集成的认证技术
HTTP BASIC authentication headers
/HTTP Digest authentication headers
/HTTP X.509 client certificate exchange
:基于IETF RFC
的规范LDAP
:常见的跨平台身份验证形式Form-based authentication
:用于简略的用户界面需要OpenID authentication
:一种去中心化的身份认证形式Authentication based on pre-established request headers
:一种用户身份验证以及受权的集中式平安根底计划Jasig Central Authentication Service
:单点登录计划Transparent authentication context propagation for Remote Method Invocation and HttpInvoker
:一个Spring
近程调用协定Automatic "remember-me" authentication
:容许在指定到期工夫前自行从新登录零碎Anonymous authentication
:容许匿名用户应用特定身份平安拜访资源Run-as authentication
:容许在一个会话中变换用户身份的机制Java Authentication and Authorization
:JASS
,Java
验证和受权API
Java EE container authentication
:容许零碎持续应用容器治理这种身份验证形式Kerberos
:一种应用对称密钥机制,容许客户端和服务器互相确认身份的认证协定
除此之外还引入了其余第三方包,比方 JOSSO
,另外如果都无奈满足需要,Spring Security
也容许开发人员本人编写认证技术。
2 简略Demo
上面来动手做一个简略的 Demo
去体验一下Spring Security
。
2.1 新建工程
默认即可:
依赖抉择 Spring Web
和Spring Secutiry
:
2.2 启动类
批改启动类,使其作为 Controller
类:
@SpringBootApplication
@RestController
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);
}
@GetMapping("/")
public String hello(){return "Hello, Spring Security.";}
}
2.3 运行
运行后能够看见控制台有一串主动生成的明码:
浏览器拜访
http://localhost:8080
会主动跳转到
http://localhost:8080/login
明码输出控制台中的明码,用户名默认为user
,就能够登录了:
胜利后会主动跳转到
http://localhost:8080
2.3 批改根本认证用户名与明码
批改application.properties
/application.yaml
,增加如下属性:
spring.security.user.name=test
spring.security.user.password=test
该认证形式本质上是 HTTP
根本认证形式,只须要用户名和明码,而下面的两项属性能够自定义根本认证的用户名和明码,测试:
3 参考
- Spring Security 官网