2014-12-30 7 views
0

Я использую весеннюю безопасность для аутентификации. Я хочу передать динамическое значение в имени и пароле, но я не хочу использовать уровень сервиса, потому что я использую вызов веб-сервиса в контроллере.Login form based spring 3 security

Вот мой код:

 <?xml version="1.0" encoding="UTF-8"?> 
     <beans:beans xmlns="http://www.springframework.org/schema/security" 
      xmlns:beans="http://www.springframework.org/schema/beans" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
           http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">  

       <global-method-security pre-post-annotations="enabled" /> 
       <http pattern="/auth/logout.html" security="none"/> 
       <http pattern="/css/**" security="none" /> 
       <http pattern="/js/**" security="none" /> 

       <http auto-config="true" use-expressions="true"> 
       <intercept-url pattern="/login" access="permitAll" /> 
       <intercept-url pattern="/logout" access="permitAll" /> 
       <intercept-url pattern="/accessdenied" access="permitAll" /> 
       <intercept-url pattern="/**" access="hasRole('ROLE_USER')" /> 
       <form-login login-page="/login" default-target-url="/suburb_analyser" authentication-failure-url="/accessdenied" /> 
       <logout logout-success-url="/logout" /> 
      </http> 

      <authentication-manager alias="authenticationManager"> 
       <authentication-provider> 
        <user-service> 
         <user name="[email protected]" password="mor55eover" authorities="ROLE_USER" /> 
        </user-service> 
       </authentication-provider> 
      </authentication-manager> 

     </beans:beans> 
+0

Возможно, вы имели в виду пароль в этом посте? –

+0

В этой строке <имя пользователя = "[email protected]" password = "mor55eover" authority = "ROLE_USER" /> Я хочу использовать динамическое имя и пароль вместо "name =" [email protected] .au "password =" mor55eover "" – Mangita

+0

Я понимаю, о чем вы спрашиваете в своем вопросе. Мне интересно, используете ли вы пароль «mor55eover» в качестве пароля. Если это так, а) вы не должны были размещать его здесь, и б) с тех пор вы должны немедленно изменить этот пароль в любом месте, где вы его используете. –

ответ

0

Если вы хотите передать динамическое значение имени и пароля. Вам нужно объявить компонент, который реализует интерфейс UserDetailsService. Затем измените XML в:

<authentication-manager alias="authenticationManager"> 
    <authentication-provider user-service-ref="yourServiceBeanName"> 
    </authentication-provider> 
</authentication-manager> 

Вы можете использовать JDBC, файловой системы или памяти, чтобы сгенерировать имя и пароль динамически в службе.