UserDetailsService не вызывается - PullRequest
       35

UserDetailsService не вызывается

1 голос
/ 31 января 2012

У меня есть этот Spring XML:

    <!-- Configure the authentication  -->
    <security:http auto-config="true" use-expressions="true">
        <security:form-login login-page="/login"
                             authentication-failure-url="/login?error=true"
                             default-target-url="/index" />

        <security:logout invalidate-session="true"
                         logout-success-url="/login"
                         logout-url="/logout" />
    </security:http>

    <security:authentication-manager>
        <security:authentication-provider user-service-ref="testUDS" />
    </security:authentication-manager>

    <bean id="testUDS" class="net.safecycle.services.security.TestUserDetailService" />

Моя реализация UserDetailsService выглядит следующим образом:

public class TestUserDetailService implements UserDetailsService {
    public UserDetails loadUserByUsername 
    (
        String username
    ) throws UsernameNotFoundException {
        System.out.println ("loadUserByUsername (" + username + ")");

        Collection<GrantedAuthority> authorities;
        authorities = new LinkedList<GrantedAuthority> ();
        authorities.add (new GrantedAuthorityImpl ("Admin"));

        UserDetails ud = new User (username, 
                                   "ca", 
                                   true, 
                                   true, 
                                   true, 
                                   true, 
                                   authorities);
        return ud;
    }
}

Когда я вхожу в систему с любым именем пользователя и паролем 'ca', я долженсм. утверждение печати в верхней части моего loadUserByUsername, но я этого не делаю.Что больше всего озадачивает то, что я использовал этот код в другом проекте без проблем.Я что-то упускаю, ошибка копирования, на которую я надеюсь?

Ответы [ 2 ]

1 голос
/ 12 марта 2012

Вот мой код из моего XML-файла.Единственное, чего не хватает - это псевдонима. Попробуйте добавить псевдоним = "authenticationManager", может быть, это поможет.

<beans:bean id="CustomUserDetailsService"
    class="com.dennis.ehospital.hibernate.security.CustomUserDetailsService" />

<authentication-manager alias="authenticationManager">
    <authentication-provider user-service-ref="CustomUserDetailsService" />
</authentication-manager>
0 голосов
/ 31 января 2012

Попробуйте указать, какие ресурсы защищены

<security:intercept-url pattern="/**" access="isAuthenticated()"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...