2011-07-29 7 views
0

こんにちは、私はSpringセキュリティ3の新機能ですが、このサイトの助けを借りて認証と承認を正常に開発しました。今度は、context-security.xmlからintercept-urlパターンを削除します。私は特定のユーザーフォームデータベースの権限を取得し、動的に作成しようとしています。ここで私は、コンテキストのsecurity.xmlに...スプリングセキュリティで動的に<intercept-url pattern>を作成する3

をした

import org.springframework.beans.factory.FactoryBean; 

public class RequestMappingFactoryBean implements FactoryBean{ 
    private final static String EOL = System.getProperty("line.separator"); 
    public Object getObject() throws Exception 
    { 
     StringBuffer sb = new StringBuffer(); 
     sb.append("CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON"); 
     sb.append(EOL); 
     sb.append("PATTERN_TYPE_APACHE_ANT"); 
     sb.append(EOL); 
     sb.append("/**login.works=IS_AUTHENTICATED_ANONYMOUSLY"); 
     sb.append(EOL); 
     sb.append("/user/**=ROLE_ADMIN"); 
     return sb.toString();  
    }  
    public Class getObjectType() 
    {  
     return String.class; 
    } 
    public boolean isSingleton() 
    {  
     return true; 
    } 
} 

また、私は

<custom-filter before="FIRST" ref="requestMappings"/> 

から参照を削除するとRequestMappingFactoryBeanで

<beans:bean id="filterSecurityInterceptor" class="org.springframework.security.intercept.web.FilterSecurityInterceptor"> 
      <custom-filter before="FIRST" ref="requestMappings"/> 
      <beans:property name="authenticationManager" ref="authenticationManager" /> 
      <beans:property name="accessDecisionManager" ref="accessDecisionManager" /> 
      <beans:property name="objectDefinitionSource" ref="requestMappings" /> 
     </beans:bean> 

     <beans:bean id="requestMappings" class="com.nmmc.common.security.repository.RequestMappingFactoryBean" /> 

    <http auto-config="true" once-per-request="false"> 

     <!-- Restrict URLs based on role --> 
     <intercept-url pattern="/login.works" access="IS_AUTHENTICATED_ANONYMOUSLY" /> 
     <intercept-url pattern="/login/validate.works" access="IS_AUTHENTICATED_ANONYMOUSLY" />  
     <intercept-url pattern="/css/*" access="IS_AUTHENTICATED_ANONYMOUSLY" /> 

     <form-login login-page="/login.works" login-processing-url="/j_spring_security_check" 
      default-target-url="/login/validate.works" 
      authentication-failure-url="/login.works" /> 
     <logout logout-url="/j_spring_security_logout" 
      logout-success-url="/login.works" invalidate-session="true" /> 

     <session-management invalid-session-url="/login.works" 
      session-fixation-protection="none"> 
      <concurrency-control max-sessions="50" 
       error-if-maximum-exceeded="true" /> 
     </session-management> 
    </http> 

    <authentication-manager> 
     <authentication-provider ref="customAuthenticationProvider"></authentication-provider> 
    </authentication-manager> 

    <beans:bean id="customAuthenticationProvider" 
     class="com.nmmc.common.security.repository.CustomAuthenticationProvider"></beans:bean> 

は、それはエラーを与えること私はそれを定義し、私のアプリを実行する場合は、refを定義する必要があります

のようなエラーを与える
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Security namespace does not support decoration of element [custom-filter] 

なぜ私は与えられたものとして定義します。 実行するコードに変更はありますか?

答えて

関連する問題