View Javadoc

    1   //========================================================================
    2   //Copyright 2004-2008 Mort Bay Consulting Pty. Ltd.
    3   //------------------------------------------------------------------------
    4   //Licensed under the Apache License, Version 2.0 (the "License");
    5   //you may not use this file except in compliance with the License.
    6   //You may obtain a copy of the License at
    7   //http://www.apache.org/licenses/LICENSE-2.0
    8   //Unless required by applicable law or agreed to in writing, software
    9   //distributed under the License is distributed on an "AS IS" BASIS,
    10  //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    11  //See the License for the specific language governing permissions and
    12  //limitations under the License.
    13  //========================================================================
    14
    15  package org.mortbay.jetty.plus.jaas;
    16
    17  // ========================================================================
    18  // $Id: SSOJAASUserRealm.java 1001 2008-02-01 09:31:51Z fred nizery $
    19  //
    20  // ------------------------------------------------------------------------
    21  // Licensed under the Apache License, Version 2.0 (the "License");
    22  // you may not use this file except in compliance with the License.
    23  // You may obtain a copy of the License at
    24  // http://www.apache.org/licenses/LICENSE-2.0
    25  // Unless required by applicable law or agreed to in writing, software
    26  // distributed under the License is distributed on an "AS IS" BASIS,
    27  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    28  // See the License for the specific language governing permissions and
    29  // limitations under the License.
    30  // ========================================================================
    31
    32
    33  import java.security.Principal;
    34
    35  import org.mortbay.jetty.Request;
    36  import org.mortbay.jetty.Response;
    37  import org.mortbay.jetty.security.Credential;
    38  import org.mortbay.jetty.security.SSORealm;
    39
    40
    41
    42
    43  /* ---------------------------------------------------- */
    44  /** SSOJAASUserRealm
    45   * <p>
    46   *
    47   * <p><h4>Notes</h4>
    48   * <p>
    49   *
    50   * <p><h4>Usage</h4>
    51   * For SSO realm that uses JAAS
    52   * The configuration must be the same as for JAASUserRealm plus
    53   * injection of an instance of class HashSSORealm using setSSORealm()
    54   * methode. This is intended to be used with the correct LoginModule
    55   * and its fitting .conf configuration file as described in JAAS documentation.
    56   *
    57   * @author Frederic Nizery <frederic.nizery@alcatel-lucent.fr>
    58   *
    59   * @org.apache.xbean.XBean element="ssoJaasUserRealm" description="Creates a UserRealm suitable for use with JAAS w/ support of SSO"
    60   */
    61  public class SSOJAASUserRealm extends JAASUserRealm implements SSORealm
    62  {
    63      private SSORealm _ssoRealm;
    64
    65      /** Set the SSORealm.
    66       * A SSORealm implementation may be set to enable support for SSO.
    67       * @param ssoRealm The SSORealm to delegate single sign on requests to.
    68       */
    69      public void setSSORealm(SSORealm ssoRealm)
    70      {
    71          _ssoRealm = ssoRealm;
    72      }
    73
    74      /* ------------------------------------------------------------ */
    75      public Credential getSingleSignOn(Request request,Response response)
    76      {
    77          if (_ssoRealm!=null)
    78              return _ssoRealm.getSingleSignOn(request,response);
    79          return null;
    80      }
    81
    82      /* ------------------------------------------------------------ */
    83      public void setSingleSignOn(Request request,Response response,Principal principal,Credential credential)
    84      {
    85          if (_ssoRealm!=null)
    86              _ssoRealm.setSingleSignOn(request,response,principal,credential);
    87      }
    88
    89      /* ------------------------------------------------------------ */
    90      public void clearSingleSignOn(String username)
    91      {
    92          if (_ssoRealm!=null)
    93              _ssoRealm.clearSingleSignOn(username);
    94      }
    95
    96  }