2013-06-11 3 views
0

Я использую CustomAuthentication провайдер для аутентификации, который распространяется на AbstractUserDetailsAuthenticationProvider. Это я должен был сделать, потому что я хотел пройти аутентификацию против веб-службы и требовал как идентификатора пользователя, так и пароля. Это был единственный класс, который позволил мне это сделать. Теперь я облицовочные вопросы, реализующие Запомни меня функциональность для этого, вот мой безопасности-файл контекст -Весна безопасности помнить-меня с customAuthenticationProvider

<http auto-config="true"> 
    <intercept-url pattern="/j_spring_security_check" access="IS_AUTHENTICATED_ANONYMOUSLY"/>  
    <intercept-url pattern="/dashboard*" access="ROLE_USER" /> 
    <form-login login-page="/login.html" default-target-url="/dashboard1.html#meetings" 
     authentication-failure-url="/loginFailed.html" /> 
    <logout logout-success-url="/login.html" /> 
</http> 

<beans:bean name="customAuthenticationProvider" class = "com.component.WebServiceUserDetailsAuthenticationProvider"/> 

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

</beans:beans> 

Теперь я пытаюсь реализовать помяни меня, но это исполнение меня есть служба детали пользователя, Я не могу иметь, так как мне нужно как имя пользователя, так и пароль для проверки подлинности снова. Моя веб-служба и метод, открытый с помощью userdetailservice, дают только имя пользователя, а не пароль, и именно по этой причине я должен был использовать customAuthentication на первом месте.

+0

Вы на самом деле не сказали, каковы ваши проблемы, поэтому вам следует, вероятно, отредактируйте свой вопрос, чтобы уточнить. Кроме того, вам не нужно расширять «AbstractUserDetailsAuthenticationProvider». Вы можете просто реализовать интерфейс 'AuthenticationProvider' напрямую. –

+0

Привет, Лука, я уже закончил свой вопрос. И AbstractUserDeta ..... Я использовал, потому что хотел предоставить реализацию только для проверки подлинности метода, и для этого используется abstractUs ... – Hemant

ответ

0

Запомнить меня - это альтернативный способ аутентификации пользователя, поэтому, когда он получает куки-файл с помпом, он должен проверить его и загрузить информацию для пользователя, чтобы предоставить ее в приложение. Для этого используется интерфейс UserDetailsService.

Основная реализация TokenBasedRememberMeServices нуждается в доступе к паролю, чтобы проверить токен. Если ваша система не может это предоставить, вы не сможете ее использовать.

Альтернатива PersistentTokenBasedRememberMeServices, в которой используется база данных для хранения токенов с запоминанием. Он не нуждается в доступе к паролю, но вам все равно необходимо реализовать UserDetailsService, чтобы он мог загружать информацию для аутентифицированного пользователя. Возвращаемый объект UserDetails не должен содержать пароль, но он должен содержать имя пользователя как минимум, чтобы вы могли указать, кто вошел в систему.