SpringSecurity 的HttpSecurity,Web
2020-05-27 本文已影响0人
John_Phil
configure(AuthenticationManagerBuilder)
用于通过允许轻松添加AuthenticationProviders来建立身份验证机制:例如,以下内容定义了具有内置“用户”和“管理员”登录名的内存中身份验证。
public void configure(AuthenticationManagerBuilder auth) {
auth
.inMemoryAuthentication()
.withUser("user")
.password("password")
.roles("USER")
.and()
.withUser("admin")
.password("password")
.roles("ADMIN","USER");
}
configure(HttpSecurity)
允许基于选择匹配在资源级别配置基于Web的安全性-例如,以下示例将以/ admin /开头的URL限制为具有ADMIN角色的用户,并声明需要使用其他任何URL成功认证。
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
}
form-login属性详解
form-login是spring security命名空间配置登录相关信息的标签,它包含如下属性:
- login-page 自定义登录页url,默认为/login
- login-processing-url 登录请求拦截的url,也就是form表单提交时指定的action
- default-target-url 默认登录成功后跳转的url
- always-use-default-target 是否总是使用默认的登录成功后跳转url
- authentication-failure-url 登录失败后跳转的url
- username-parameter 用户名的请求字段 默认为userName
- password-parameter 密码的请求字段 默认为password
- authentication-success-handler-ref 指向一个AuthenticationSuccessHandler用于处理认证成功的请求,不能和default-target-url还有always-use-default-target同时使用
- authentication-success-forward-url 用于authentication-failure-handler-ref
- authentication-failure-handler-ref 指向一个AuthenticationFailureHandler用于处理失败的认证请求
- authentication-failure-forward-url 用于authentication-failure-handler-ref
- authentication-details-source-ref 指向一个AuthenticationDetailsSource,在认证过滤器中使用
configure(WebSecurity)
用于影响全局安全性的配置设置(忽略资源,设置调试模式,通过实现自定义防火墙定义拒绝请求)。例如,以下方法将导致以/ resources /开头的任何请求都被忽略,以进行身份验证。
public void configure(WebSecurity web) throws Exception {
web
.ignoring()
.antMatchers("/resources/**");
}