2009-10-05 4 views
2

Je veux faire un gestionnaire d'authentification de base dans SEAM. Je mets cela dans components.xml:Authentificateur de base dans SEAM

<web:authentication-filter url-pattern="/test/resource/rest/*" auth-type="basic"/> 

J'ai également mis en web.xml le filtre:

<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> 

J'ai créé une comme classe 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 
} 

} 

j'ai donc surchargé l' doFilter méthode. Maintenant, je ne comprends pas pourquoi cela ne fonctionne pas? Je n'ai trouvé aucun exemple de code pour l'authentification de base. dans SEAM, partout sur Internet (je veux dire le code y compris le filtre et la classe, donc je manque quelque chose dans mon code?)

Répondre

3

J'ai mis en œuvre à l'aide

<web:authentication-filter url-pattern="*.seam" auth-type="basic"/> 
<security:identity authenticate-method="#{authenticator.authenticate}"/> 

et non servlets.

Et méthode authenticate prendre l'utilisateur et mot de passe comme:

final String username = identity.getCredentials().getUsername(); 
    final String password = identity.getCredentials().getPassword(); 
+0

Sory, mais qui était ma réponse - vous l'avez fait de manière Seam, exaclty ce que je sugested. – cetnar