Package org.surfnet.oaaas.cas

Source Code of org.surfnet.oaaas.cas.CasAuthenticator

package org.surfnet.oaaas.cas;

import org.surfnet.oaaas.auth.AbstractAuthenticator;
import org.surfnet.oaaas.auth.principal.AuthenticatedPrincipal;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
* Created by bourges on 05/08/14.
*/
public class CasAuthenticator extends AbstractAuthenticator {
    @Override
    public boolean canCommence(HttpServletRequest request) {
        return getAuthStateValue(request) != null;
    }

    @Override
    public void authenticate(HttpServletRequest request, HttpServletResponse response, FilterChain chain, String authStateValue, String returnUri) throws IOException, ServletException {
        CasUser casUser = (CasUser) request.getSession().getAttribute(PostCasAuthenticationFilter.POST_CAS_AUTHENTICATION_INFO);
        if (casUser == null) {
            String uri = request.getRequestURI();
            String queryString = request.getQueryString();
            request.getSession().setAttribute(PostCasAuthenticationFilter.REDIRECT_URL, uri + "?" + queryString);
            response.sendRedirect("/cas");
            return;
        }
        else {
            AuthenticatedPrincipal principal = new AuthenticatedPrincipal(casUser.getUid());
            principal.setAdminPrincipal(casUser.isAdmin);
            super.setPrincipal(request, principal);
            super.setAuthStateValue(request, authStateValue);
            chain.doFilter(request, response);
        }
    }
}
TOP

Related Classes of org.surfnet.oaaas.cas.CasAuthenticator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.