我想在SEAM中做一个基本的身份验证器处理程序。
我把它放在components.xml
:
<web:authentication-filter url-pattern="/test/resource/rest/*" auth-type="basic"/>
我还放了web.xml
过滤器:
<servlet>
<servlet-name>Rest Servlet</servlet-name>
<servlet-class>test.BasicAuthenticationServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Rest Servlet</servlet-name>
<url-pattern>/test/resource/rest/*</url-pattern>
</servlet-mapping>
我创建了一个BasicAuthenticationServlet
类,如:
public class BasicAuthenticationServlet extends AuthenticationFilter {
public void doFilter(final HttpServletRequest request,
final HttpServletResponse response, FilterChain chain){
//some code here
}
chain.doFilter(request, response){
//some code here
}
}
所以我覆盖了doFilter
方法。
现在,我不明白为什么它不起作用? 我找不到基本身份验证的任何代码示例。在SEAM,整个互联网(我的意思是代码包括过滤器和类;所以我可能会错过我的代码中的一些东西?)
答案 0 :(得分:3)
我已经使用
实现了它<web:authentication-filter url-pattern="*.seam" auth-type="basic"/>
<security:identity authenticate-method="#{authenticator.authenticate}"/>
而不是servlet。
在authenticate方法中,取用户并传递如下:
final String username = identity.getCredentials().getUsername();
final String password = identity.getCredentials().getPassword();
答案 1 :(得分:0)
为什么你不想在Seam way中实现它?