我有这个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的顶部看到打印语句,但我没有看到。最令人困惑的是,我在另一个项目中使用过此代码,没有任何问题。我是不是遗漏了什么,我希望是复制错误?
发布于 2012-01-31 13:49:41
尝试指定受保护的资源
<security:intercept-url pattern="/**" access="isAuthenticated()"/>发布于 2012-03-12 22:09:14
下面是我的xml文件中的代码。唯一缺少的就是盟军..尝试添加alias="authenticationManager“可能会有所帮助。
<beans:bean id="CustomUserDetailsService"
class="com.dennis.ehospital.hibernate.security.CustomUserDetailsService" />
<authentication-manager alias="authenticationManager">
<authentication-provider user-service-ref="CustomUserDetailsService" />
</authentication-manager>https://stackoverflow.com/questions/9074761
复制相似问题