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  }