9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper/**
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper *
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Copyright (c) 2008 Sun Microsystems Inc. All Rights Reserved
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper *
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * The contents of this file are subject to the terms
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * of the Common Development and Distribution License
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * (the License). You may not use this file except in
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * compliance with the License.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper *
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * You can obtain a copy of the License at
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * https://opensso.dev.java.net/public/CDDLv1.0.html or
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * opensso/legal/CDDLv1.0.txt
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * See the License for the specific language governing
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * permission and limitations under the License.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper *
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * When distributing Covered Code, include this CDDL
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Header Notice in each file and include the License file
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * at opensso/legal/CDDLv1.0.txt.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * If applicable, add the following below the CDDL Header,
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * with the fields enclosed by brackets [] replaced by
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * your own identifying information:
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * "Portions Copyrighted [year] [name of copyright owner]"
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper *
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * $Id: IOpenSSORequestHandler.java,v 1.1 2009/01/30 12:09:40 kalpanakm Exp $
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper *
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper */
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeperpackage com.sun.opensso.agents.jsr196;
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeperimport javax.security.auth.Subject;
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeperimport javax.servlet.http.HttpServletRequest;
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeperimport javax.servlet.http.HttpServletResponse;
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeperimport java.util.Map;
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper/**
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper *
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * IOpenSSORequestHandler would act as an interface between Filter Framework
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * and the jsr115/jsr196 based agent
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper *
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper */
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeperpublic interface IOpenSSORequestHandler {
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper /**
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Initialize the Request handler with a configuration map.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * @param config the configuration map.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper */
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper public void init(Map config);
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper /**
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Checks whether client should be authenticated or not.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper *
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * @param subject the subject that may be used by the callers
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * to store Principals and credentials validated in the request.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper *
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * @param request the <code>HttpServletRequest</code> associated with
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * this Client message request.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper *
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * @param response the <code>HttpServletResponse</code> associated with
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * this Client message request
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper *
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * @return true if the client should be authenticated.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper *
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper */
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper public boolean shouldAuthenticate(Subject subject,
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper HttpServletRequest request, HttpServletResponse response);
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper /**
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Returns Login URL for client to be redirected.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * @param request the <code>HttpServletRequest</code>.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper *
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * @param response the <code>HttpServletResponse</code>
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper *
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * @return String Login URL
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper */
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper public String getLoginURL(HttpServletRequest request, HttpServletResponse response)
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper throws Exception;
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper /**
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper *
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Returns the principal related to the subject
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper *
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * @param request the <code>HttpServletRequest</code> from which the
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * principal is retrieved
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * @param subject the Subject
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper *
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * @return name of the principal
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper */
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper public String getAuthPrincipal(HttpServletRequest request, Subject subject);
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper /**
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper *
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * Returns the group names associated with the principal present in request
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper *
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * @param request the <code>HttpServletRequest</code> from which the
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * principal's group names are retrieved.
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper *
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * @param subject
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper *
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper * @return array of group names
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper */
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper public String[] getAuthGroup(HttpServletRequest request, Subject subject);
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper
9772159fcd47ec75c7451e49baf2165fecb1f271Mark de Reeper}