I use this to autologin the first time a user registers...don't know if this 
helps


  | import java.io.IOException;
  | import java.util.Iterator;
  | 
  | import javax.servlet.Filter;
  | import javax.servlet.FilterChain;
  | import javax.servlet.FilterConfig;
  | import javax.servlet.ServletException;
  | import javax.servlet.ServletRequest;
  | import javax.servlet.ServletResponse;
  | import javax.servlet.http.HttpServletRequest;
  | import javax.servlet.http.HttpServletResponse;
  | 
  | import org.apache.commons.httpclient.Cookie;
  | import org.apache.commons.httpclient.HttpClient;
  | import org.apache.commons.httpclient.HttpException;
  | import org.apache.commons.httpclient.HttpMethod;
  | import org.apache.commons.httpclient.HttpState;
  | import org.apache.commons.httpclient.HttpStatus;
  | import org.apache.commons.httpclient.methods.GetMethod;
  | import org.apache.log4j.Logger;
  | 
  | 
  | /**
  |  * @web.filter name="autoLoginFilter" display-name="Auto Login Filter"
  |  * @web.filter-mapping url-pattern="/autologin/*"
  |  */
  | 
  | public class AutoLoginFilter implements Filter {
  | 
  |     private String protectUrl = "http://~";;
  |     private String jsecurityUrl = "http://~";; 
  |     
  |     private static Logger log = Logger.getLogger(AutoLoginFilter.class);
  | 
  |     private FilterConfig filterConfig;
  | 
  |     public void doFilter(ServletRequest request, ServletResponse response,
  |                     FilterChain chain) {
  |             
  |             log.debug("Called doFilter");
  | 
  |             try {
  | 
  |                     HttpServletRequest realrequest = 
(HttpServletRequest)request;                   
  |                     
  |                     
  |                     String username = 
(String)realrequest.getSession().getAttribute("username");
  |                     String password = 
(String)realrequest.getSession().getAttribute("password");
  |                     
  |                     log.debug("Autologin: " + username);
  |                     
  |                     HttpClient client = new HttpClient();
  |                     
  |                     HttpMethod get = new GetMethod(protectUrl);
  |                                             
  |                     HttpState state = new HttpState();
  |                     Cookie cookie = new Cookie(~domain, "JSESSIONID", 
realrequest.getSession().getId() );
  |                     
  |                     cookie.setPath("/");
  |                     
  |                     log.debug("Cookie: " + cookie.toExternalForm());
  |                     log.debug("Cookie Domain: " + cookie.getDomain());
  |                     log.debug("Cookie Path: " + cookie.getPath());          
        
  |                     log.debug("Cookie Seucre: " + cookie.getSecure());
  |                     
  |                     state.addCookie(cookie);
  |                     client.setState(state);
  |                     
  |                 try {
  | 
  |                     int statusCode = client.executeMethod(get);
  | 
  |                     if (statusCode != HttpStatus.SC_OK) {
  |                       log.error("Method failed: " + get.getStatusLine());
  |                     }                   
  |                     
  |                   } catch (HttpException e) {
  |                     log.error("Fatal protocol violation: " + 
e.getMessage());
  |                   } catch (IOException e) {
  |                     log.error("Fatal transport error: " + e.getMessage());
  |                   } finally {                      
  |                     get.releaseConnection();
  |                     
  |                     String form = jsecurityUrl + "?j_username=" + username 
+ "&j_password=" + password;
  |                     
  |                             HttpMethod get2 = new GetMethod(form);
  |                                                             
  |                             int statusCode2 = client.executeMethod(get2);   
                        
  |                     
  |                             log.debug("Autologin Status Code: " + 
statusCode2);
  |                             
  |                             /*
  |                             uncomment to debug
  |                         byte[] responseBody = get2.getResponseBody();
  |                         log.debug("Response:" + new String(responseBody));
  |                             */
  |                             
  |                             get2.releaseConnection();
  |                             
  |                   }                         
  |                   
  |                   HttpServletResponse realresponse = 
(HttpServletResponse)response;
  |                   realresponse.sendRedirect(realrequest.getContextPath() + 
"/secure");
  |                   
  |             } catch (IOException io) {
  |                     log.error("IOException:" + io.toString());
  |             } 
  |             
  |             
  |     }
  | 
  |     public FilterConfig getFilterConfig() {
  |             return this.filterConfig;
  |     }
  | 
  |     public void setFilterConfig(FilterConfig filterConfig) {
  |             this.filterConfig = filterConfig;
  |     }
  | 
  |     public void destroy() {
  |     }
  | 
  |     public void init(FilterConfig arg0) throws ServletException {
  |     }
  | 
  | }
  | 

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4177734#4177734

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4177734
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to