2013-12-10 1 views
0

모든 API와 스프링 보안 설명서를 읽었지만 봄 보안 bean xml에서 BCryptPasswordEncoder 강도 매개 변수를 구성하는 방법을 찾을 수 없습니다.보안 xml에서 BCryptPasswordEncoder를 구성하는 방법

처럼 뭔가를해야만 일을하려고 : BCryptPasswordEncoder(int strength);

내 security.xml이 들어

<bean id="bCryptPasswordEncoder" 
    class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" /> 


<security:authentication-manager> 
    <security:authentication-provider 
     user-service-ref="userDetailsServiceImpl"> 
     <security:password-encoder ref="bCryptPasswordEncoder" /> 
    </security:authentication-provider> 
</security:authentication-manager> 

답변

1

당신이 BCryptPasswordEncoder에 Spring's constructor dependency injection을 사용합니다.

<bean id="bCryptPasswordEncoder" 
    class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"> 
    <constructor-arg value="100"/> 
</bean> 

<security:authentication-manager> 
    <security:authentication-provider 
     user-service-ref="userDetailsServiceImpl"> 
     <security:password-encoder ref="bCryptPasswordEncoder" /> 
    </security:authentication-provider> 
</security:authentication-manager> 

스프링 3.1부터 더 간결하게 만들 수 있습니다. using the c-namespace. 예를 들어 :

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:security="http://www.springframework.org/schema/security" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:c="http://www.springframework.org/schema/c" 
    xsi:schemaLocation="http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd 
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 

    <bean id="bCryptPasswordEncoder" 
      class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" 
      c:strength="100"/> 

    <security:authentication-manager> 
     <security:authentication-provider 
      user-service-ref="userDetailsServiceImpl"> 
      <security:password-encoder ref="bCryptPasswordEncoder" /> 
     </security:authentication-provider> 
    </security:authentication-manager> 

</beans> 

는이 예를 들어 새로운 XMLNS이 있습니다

  • 에서 것을 알 수 있습니다 : C 선언
  • 값을 C 후 : bCryptPasswordEncoder는 생성자의 인자 이름에 해당합니다. 또는 c : _0을 사용하여 색인을 지정할 수 있습니다.

c-namespace에 대한 자세한 내용은 이전 링크를 참조하십시오.

+0

감사합니다. 나는 그것을 시도하고 알게 될거야 – lior

+0

안녕하세요 일하고있어! 고맙습니다! – lior

관련 문제