# 认证方式
- httpbasic 在请求受保护资源时,会弹出一个认证窗口,提供登录。
1 | <security:http> |
- FormLogin 在请求受保护资源时,会跳转登录界面
1 | <security:http> |
# 解决 csrf 问题
1 | <security:csrf disabled="true"/> |
# 拦截方式
1 | pattern需 要 拦 截 资 源 |
- 示例:
1 | <security:intercept-url pattern="/product/index" access="permitAll()"/> |
# 自定义登录请求与登录界面
1 | <security:form-login |
# 认证管理器
1 | <security:authentication-manager> |
# user-service 配置实现用户权限访问控制
1 | <security:intercept-url pattern="/product/add " access="hasRole('ROLE_ADMIN')"/> |
# 自定义 UserDetailService 类实现用户权限 访问控制
1 | public class MyUserDetailService implements UserDetailsService { |
1 | <security:authentication-manager> |
# 自定义权限不足界面
1 | <security:access-denied-handler error-page="/error"/> |
# 自定义登录成功与失败处理逻辑
-
关键点:
-
1)登录成功处理:AuthenticationSuccessHandler
-
2)登录失败处理:AuthenticationFailureHandle
1 | public class MyAuthenticationSuccessHandler implements AuthenticationSuccessHandler { |
1 | public class MyAuthenticationSuccessHandler implements AuthenticationSuccessHandler { |
1 | <security:http> |
# 开启 security 注解配置
1 | <security:global-method-security secured-annotations="enabled"></security:global-method-security> |
- 使用方法
1 |
|
# 开启 pre-post-annotations 注解配置
1 | <security:global-method-security pre-post-annotations="enabled"></security:global-method-security> |
- 使用方法
1 |
|