spring security 問題解決方案

zenzuguo發表於2010-01-20

2、http節點的配置

<http auto-config="true" lowercase-comparisons="false" path-type="ant" access-denied-page="/accessDenied.jsp" access-decision-manager-ref="accessDecisionManager">

  1. <intercept-url pattern="/index.jsp*" access="ROLE_ANONYMOUS"/>
  2. <intercept-url pattern="/logout.jsp*" access="ROLE_ANONYMOUS"/>
  3. <intercept-url pattern="/accessDenied.jsp*" access="ROLE_ANONYMOUS"/>
  4. <intercept-url pattern="/**/*.jsp*" access="ADMIN,SYS_MANAGER"/>
  5. <intercept-url pattern="/**/*.htm*" access="ADMIN,SYS_MANAGER"/>
  6. <intercept-url pattern="/**/*.html*" access="ADMIN,SYS_MANAGER"/>
  7. <intercept-url pattern="/**/*.action*" access="ADMIN,SYS_MANAGER"/>
  8. <intercept-url pattern="/**/*.ftl*" access="ADMIN,SYS_MANAGER"/>
  9. <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"/>
  10. <concurrent-session-control max-sessions="1" exception-if-maximum-exceeded="false"/>
  11. <logout logout-url="/j_security_logout" logout-success-url="/index.jsp" invalidate-session="true"/>
  12. 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、自定義訪問決策管理器的配置

  1. "accessDecisionManager" class="org.springframework.security.vote.AffirmativeBased">
  2. "allowIfAllAbstainDecisions" value="false"/><!-- 設定是否允許 “沒人反對就透過” 的投票策略 --&gt
  3. "decisionVoters"><!-- 投票者 --&gt
  4. class="org.springframework.security.vote.RoleVoter">
  5. "rolePrefix" value=""/><!-- 投票者支援的許可權字首,預設是“ROLE_” --&gt

     <!-- 設定是否允許 “沒人反對就透過” 的投票策略 --&gt
     <!-- 投票者 --&gt
          
               
                    <!-- 投票者支援的許可權字首,預設是“ROLE_” --&gt
               
           
     

說明:

Acegi提供三種投票透過策略的實現:
1、AffirmativeBased(至少一個投票者同意方可透過)
2、ConsensusBased(多數投票者同意方可透過)
3、UnanimousBased(所有投票者同意方可透過)

4、DAO身份驗證提供者的配置

"userDao"/>
[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/106285/viewspace-1030750/,如需轉載,請註明出處,否則將追究法律責任。

相關文章