SpringSecurity HttpSecurity 方法

202 阅读4分钟

摘自

黑马,侵删。

HttpSecurity类方法

`antMatcher`          只对指定路径请求进行过滤  
`authorizeRequests`   开启基于HttpservletRequest请求访问的限制   
`formLogin`           开启基于表单的用户登录  
`httpBasic`           开启基于HTTP请求的Basic认证登录  
`logout`              开启退出登录的支持  
`sessionManagement`   开启Session 管理配置  
`rememberMe`          开启记住我功能  
`csrf`                配置CSRF跨站请求伪造防护功能  

返回值方法

authorizeRequests

`antMatchers`         开启Ant风格的路径匹配  
`mvcMatchers`         开启MVC风格的路  
`regexMatchers`       开启正则表达式的路径匹配  
`and()`               功能连接符  
`anyRequest()`        匹配任何请求  
`rememberMe()`        开启记住我功能  
`access`              匹配给定的 SpEL 表达式计算结果是否为 true  
`hasAnyRole `         匹配用户是否有参数中的任意角色  
`hasRole `            匹配用户是否有某个角色  
`hasAnyAuthority`     用户是否有参数中的任意权限  
`hasAuthority `       匹配用户是否有某一个权限  
`authenticated()`     匹配已经登录认证的用户  
`fullyAuthenticated`  匹配完整登录认证的用户(非 rememberMe用户登录)  
`haslpAddress`        匹配某IP地址的访问请求  
`permitAll()`         无条件对请求进行放行  

formLogin

`loginPage`           用户登录页面跳转路径
`successForwardUrl`   用户登录成功后的重定向地址  
`successHandler`      用户登录成功后的处理  
`defaultSuccessUrl`   用户登录成功后的跳转地址 
`failForwardUrl`      登陆失败后重定向地址
`failureUrl`          用户登录后的跳转地址 
`failureHandler`      用户登录失败后的错误处理  
`usernameParameter`   登录用户的用户名参数,默认为 username  
`passwordParameter`   登录用户的密码参数,默认为 password  
`loginProcessingUrl`  登录表单提交的路径,默认为post请求的/login  
`permitAll`           无条件对请求进行放行  

logout

`logoutUrl`             出处理控制URL,默认为post请求  
`logoutSuccessUrl`      用户退出成功后的重定向地址  
`logoutSuccessHandler`  用户退出成功后的处理器设置  
`deleteCookies`         用户退出后删除指定 Cookie  
`invalidateHttpSession` 用户退出后是否立即清除Session (默认为false)
`clearAuthentication`   用户退出后是否立即清除Authentication(默认为true)  

rememberMe

`rememberMeParameter`   指示在登录时记住用户的HTTP参数  
`key`                   记住我认证生成的Token令牌标识  
`tokenValiditySeconds`  记住我Token令牌有效期,单位为s (秒)  
`tokenRepository`       指定要使用的PersistentTokenRepostory,用来配置持久化Token令牌  
`alwaysRemember`        是否应该始终创建记住我Cookie,默认为false  
`clearAuthentication`   是否设置Cookie为安全的,如果设置为true,则必须通过HTTPS进行连接请求  

csrf

`disable`               关闭Security默认开启的CSRF防御功能  
`csrfTokenRepository`   指定要使用的CsrfTokenRepository ( Token令牌持久化仓库)。默认是由LazyCsrfTokenRepository 包装的HttpSessionCsrfTokenRepository   
`requireCsrfProtectionMatcher`  指定针对什么类型的请求应用CSRF防护功能默认设置是忽珞GET、HEAD、TRACE和OPTIONS请求,而处理并防御其他所有请求

sessionManagement

摘自Session 会话管理 - 呵呵233 - 博客园 (cnblogs.com)
sessionCreationPolicy(SessionCreationPolicy.STATELESS) session生成策略
invalidSessionUrl(String invalidSessionUrl): 指定会话失效时(请求携带无效的 JSESSIONID 访问系统)重定向的 URL,默认重定向到登录页面。
invalidSessionStrategy(InvalidSessionStrategy invalidSessionStrategy):指定会话失效时(请求携带无效的 JSESSIONID 访问系统)的处理策略。
maximumSessions(int maximumSessions):指定每个用户的最大并发会话数量,-1 表示不限数量。
maxSessionsPreventsLogin(boolean maxSessionsPreventsLogin):如果设置为 true,表示某用户达到最大会话并发数后,新会话请求会被拒绝登录;如果设置为 false,表示某用户达到最大会话并发数后,新会话请求访问时,其最老会话会在下一次请求时失效并根据 expiredUrl() 或者expiredSessionStrategy() 方法配置的会话失效策略进行处理,默认值为 false。
expiredUrl(String expiredUrl):如果某用户达到最大会话并发数后,新会话请求访问时,其最老会话会在下一次请求时失效并重定向到 expiredUrl。
expiredSessionStrategy(SessionInformationExpiredStrategy expiredSessionStrategy):如果某用户达到最大会话并发数后,新会话请求访问时,其最老会话会在下一次请求中失效并按照该策略处理请求。注意如果本方法与 expiredUrl() 同时使用,优先使用 expiredUrl() 的配置。
sessionRegistry(SessionRegistry sessionRegistry):设置所要使用的 sessionRegistry,默认配置的是 SessionRegistryImpl 实现类。