1

我正在使用 spring security 对用户进行身份验证。我已经实现了自定义身份验证管理器,但在我的身份验证管理器中将凭据和名称设为空白

这是我的安全 xml

<security:http auto-config="false" entry-point-ref="authenticationEntryPoint">
    <security:custom-filter position="CONCURRENT_SESSION_FILTER"
        ref="concurrencyFilter" />
    <security:custom-filter ref="authenticationFilter"
        position="FORM_LOGIN_FILTER" />
    <!-- <security:custom-filter after="CONCURRENT_SESSION_FILTER"
        ref="secureFilter" /> -->
    <security:session-management
        session-authentication-strategy-ref="sas" />

</security:http>

<bean id="authenticationFilter"
    class="org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter"
    p:authenticationManager-ref="ahcAuthenticationManager"     p:authenticationFailureHandler-ref="customAuthenticationFailureHandler"
    p:authenticationSuccessHandler-ref="customAuthenticationSuccessHandler"
    p:sessionAuthenticationStrategy-ref="sas">

这是我的身份验证管理器代码

public class AhcAuthenticationManager implements AuthenticationManager {

private UserInfoService userInfoService;

public AhcAuthenticationManager(UserInfoService userInfoService) {
    this.userInfoService = userInfoService;
}

public Authentication authenticate(Authentication arg)
        throws AuthenticationException {
    System.out.println(arg.getName());
    if (userInfoService.authenticateUser(arg.getName(), arg
            .getCredentials().toString())) {
        return new UsernamePasswordAuthenticationToken(arg.getPrincipal(),
                arg.getCredentials());
    }
    return null;

}

}

管理器代码中的 sysout 总是返回空我正在使用 jsf 作为客户端,在我的托管 bean 内部请求中我可以在请求 parameterMap 中看到这些参数知道我可能出错的地方吗?

谢谢

4

0 回答 0