spring security 問題解決方案
2、http節點的配置
<http auto-config="true" lowercase-comparisons="false" path-type="ant" access-denied-page="/accessDenied.jsp" access-decision-manager-ref="accessDecisionManager">
- <intercept-url pattern="/index.jsp*" access="ROLE_ANONYMOUS"/>
- <intercept-url pattern="/logout.jsp*" access="ROLE_ANONYMOUS"/>
- <intercept-url pattern="/accessDenied.jsp*" access="ROLE_ANONYMOUS"/>
- <intercept-url pattern="/**/*.jsp*" access="ADMIN,SYS_MANAGER"/>
- <intercept-url pattern="/**/*.htm*" access="ADMIN,SYS_MANAGER"/>
- <intercept-url pattern="/**/*.html*" access="ADMIN,SYS_MANAGER"/>
- <intercept-url pattern="/**/*.action*" access="ADMIN,SYS_MANAGER"/>
- <intercept-url pattern="/**/*.ftl*" access="ADMIN,SYS_MANAGER"/>
- <form-login login-page="/index.jsp" always-use-default-target="true" login-processing-url="/j_security_check" authentication-failure-url="/index.jsp?login_error=1" default-target-url="/main.action"/>
- <concurrent-session-control max-sessions="1" exception-if-maximum-exceeded="false"/>
- <logout logout-url="/j_security_logout" logout-success-url="/index.jsp" invalidate-session="true"/>
- http>
說明:
lowercase-comparisons:表示URL比較前先轉為小寫。
path-type:表示使用Apache Ant的匹配模式。
access-denied-page:訪問拒絕時轉向的頁面。
access-decision-manager-ref:指定了自定義的訪問策略管理器。當系統角色名的字首不是預設的ROLE_時,需要自定義訪問策略管理器。
login-page:指定登入頁面。
login-processing-url:指定了客戶在登入頁面中按下 Sign In 按鈕時要訪問的 URL。與登入頁面form的action一致。其預設值為:/j_spring_security_check。
authentication-failure-url:指定了身份驗證失敗時跳轉到的頁面。
default-target-url:指定了成功進行身份驗證和授權後預設呈現給使用者的頁面。
always-use-default-target:指定了是否在身份驗證透過後總是跳轉到default-target-url屬性指定的URL。
logout-url:指定了用於響應退出系統請求的URL。其預設值為:/j_spring_security_logout。
logout-success-url:退出系統後轉向的URL。
invalidate-session:指定在退出系統時是否要銷燬Session。
max-sessions:允許使用者帳號登入的次數。範例限制使用者只能登入一次。
exception-if-maximum-exceeded: 預設為false,此值表示:使用者第二次登入時,前一次的登入資訊都被清空。
當exception-if-maximum-exceeded="true"時系統會拒絕第二次登入。
3、自定義訪問決策管理器的配置
"accessDecisionManager" class="org.springframework.security.vote.AffirmativeBased"> -
"allowIfAllAbstainDecisions" value="false"/><!-- 設定是否允許 “沒人反對就透過” 的投票策略 --> -
"decisionVoters"><!-- 投票者 --> -
-
class="org.springframework.security.vote.RoleVoter"> -
"rolePrefix" value=""/><!-- 投票者支援的許可權字首,預設是“ROLE_” -->
<!-- 設定是否允許 “沒人反對就透過” 的投票策略 --> <!-- 投票者 -->
<!-- 投票者支援的許可權字首,預設是“ROLE_” -->
說明:
Acegi提供三種投票透過策略的實現:
1、AffirmativeBased(至少一個投票者同意方可透過)
2、ConsensusBased(多數投票者同意方可透過)
3、UnanimousBased(所有投票者同意方可透過)
4、DAO身份驗證提供者的配置
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/106285/viewspace-1030750/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 解決spring security自定義filter重複執行問題SpringFilter
- Spring Boot幾種啟動問題的解決方案Spring Boot
- 跨域問題,解決方案 – CORS方案跨域CORS
- 跨域問題,解決方案 - CORS方案跨域CORS
- 木馬問題解決方案
- jive中文問題解決方案
- Spring Boot 2 + Spring Security 5 + JWT 的單頁應用Restful解決方案Spring BootJWTREST
- 跨域問題及解決方案跨域
- PHPAjax跨域問題解決方案PHP跨域
- 常見問題及解決方案
- "System.Security.Cryptography.CryptographicException: 拒絕訪問" 問題的解決方法Exception
- Flutter Web 跨域問題解決方案FlutterWeb跨域
- vue許可權問題解決方案Vue
- 微信登入-6問題解決方案
- 玩Deno遇到問題的解決方案
- Nginx跨域的問題解決方案Nginx跨域
- Mycat分片方案需要解決的問題
- 前端跨域問題及其解決方案前端跨域
- git 常見問題的解決方案Git
- 一個小問題的解決方案
- WordPress:常見問題及解決方案
- PHP Warning: exec() has been disabled for security 問題解決辦法PHP
- Spring Security詳解Spring
- 解決「問題」,不要解決問題
- spring mvc解決ajax跨域問題SpringMVC跨域
- 求解決 Laravel with () limit 的問題 附帶解決方案LaravelMIT
- iOS Abort問題系統性解決方案iOS
- Vue中跨域問題解決方案1Vue跨域
- 快取常見問題及解決方案快取
- JavaWeb 亂碼問題終極解決方案!JavaWeb
- SpringBoot跨域問題解決方案Spring Boot跨域
- Java™ 教程(常見問題及其解決方案)Java
- 探尋 JavaScript 精度問題以及解決方案JavaScript
- 快取三大問題及解決方案快取
- Kafka常見的問題及解決方案Kafka
- 跨域問題,解決方案 - Nginx反向代理跨域Nginx
- 移動端適配問題解決方案
- CSS中越界問題經典解決方案CSS