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
- Spring Boot 2 + Spring Security 5 + JWT 的單頁應用Restful解決方案Spring BootJWTREST
- 跨域問題,解決方案 – CORS方案跨域CORS
- HA腦裂問題解決方案
- SpringBoot跨域問題解決方案Spring Boot跨域
- 跨域問題及解決方案跨域
- PHP Warning: exec() has been disabled for security 問題解決辦法PHP
- spring mvc解決ajax跨域問題SpringMVC跨域
- Spring Security詳解Spring
- WordPress:常見問題及解決方案
- nginx /Java 解決跨域問題方案NginxJava跨域
- Flutter Web 跨域問題解決方案FlutterWeb跨域
- vue許可權問題解決方案Vue
- Mycat分片方案需要解決的問題
- 玩Deno遇到問題的解決方案
- 前端跨域問題及其解決方案前端跨域
- Spring boot 解決跨域問題配置類Spring Boot跨域
- 求解決 Laravel with () limit 的問題 附帶解決方案LaravelMIT
- Kafka常見的問題及解決方案Kafka
- 快取常見問題及解決方案快取
- iOS Abort問題系統性解決方案iOS
- matplotlib中文報錯問題及解決方案
- Vue中跨域問題解決方案1Vue跨域
- 探尋 JavaScript 精度問題以及解決方案JavaScript
- 微信登入-6問題解決方案
- JavaWeb 亂碼問題終極解決方案!JavaWeb
- Java™ 教程(常見問題及其解決方案)Java
- 快取三大問題及解決方案快取
- 移動端適配問題解決方案
- Spring Boot Security 詳解Spring Boot
- Spring Security 快速瞭解Spring
- Spring中出現:No bean named 'XXX' available問題解決SpringBeanAI
- spring-boot + jsonp 解決前端跨域問題SpringbootJSON前端跨域
- JMeter響應亂碼問題解決方案教程JMeter
- Anaconda 安裝 國內映象問題解決方案
- 資源限制類問題的常用解決方案
- TCP 粘包 - 拆包問題及解決方案TCP
- Laravel6.X 跨域問題解決方案Laravel跨域