Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You under the Apache License, Version 2.0
   * (the "License"); you may not use this file except in compliance with
   * the License.  You may obtain a copy of the License at
   * 
   *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 
 package org.apache.catalina;
 
 
A Realm is a read-only facade for an underlying security realm used to authenticate individual users, and identify the security roles associated with those users. Realms can be attached at any Container level, but will typically only be attached to a Context, or higher level, Container.

Author(s):
Craig R. McClanahan
Version:
$Revision: 515 $ $Date: 2008-03-17 22:02:23 +0100 (Mon, 17 Mar 2008) $
 
 
 public interface Realm {
 
 
     // ------------------------------------------------------------- Properties
 

    
Return the Container with which this Realm has been associated.
 
     public Container getContainer();


    
Set the Container with which this Realm has been associated.

Parameters:
container The associated Container
 
     public void setContainer(Container container);


    
Return descriptive information about this Realm implementation and the corresponding version number, in the format <description>/<version>.
 
     public String getInfo();
 
 
     // --------------------------------------------------------- Public Methods
 
    
    
Add a property change listener to this component.

Parameters:
listener The listener to add
 
     public void addPropertyChangeListener(PropertyChangeListener listener);


    
Return the Principal associated with the specified username and credentials, if there is one; otherwise return null.

Parameters:
username Username of the Principal to look up
credentials Password or other credentials to use in authenticating this username
 
     public Principal authenticate(String usernameString credentials);


    
Return the Principal associated with the specified username and credentials, if there is one; otherwise return null.

Parameters:
username Username of the Principal to look up
credentials Password or other credentials to use in authenticating this username
 
     public Principal authenticate(String usernamebyte[] credentials);


    
Return the Principal associated with the specified username, which matches the digest calculated using the given parameters using the method described in RFC 2069; otherwise return null.

Parameters:
username Username of the Principal to look up
digest Digest which has been submitted by the client
nonce Unique (or supposedly unique) token which has been used for this request
realm Realm name
md5a2 Second MD5 digest used to calculate the digest : MD5(Method + ":" + uri)
    public Principal authenticate(String usernameString digest,
                                  String nonceString ncString cnonce,
                                  String qopString realm,
                                  String md5a2);


    
Return the Principal associated with the specified chain of X509 client certificates. If there is none, return null.

Parameters:
certs Array of client certificates, with the first one in the array being the certificate of the client itself.
    public Principal authenticate(X509Certificate certs[]);
    
    
    
Execute a periodic task, such as reloading, etc. This method will be invoked inside the classloading context of this container. Unexpected throwables will be caught and logged.
    public void backgroundProcess();


    
Return the SecurityConstraints configured to guard the request URI for this request, or null if there is no such constraint.

Parameters:
request Request we are processing
                                                     Context context);
    
    
    
Perform access control based on the specified authorization constraint. Return true if this constraint is satisfied and processing should continue, or false otherwise.

Parameters:
request Request we are processing
response Response we are creating
constraint Security constraint we are enforcing
context The Context to which client of this class is attached.
Throws:
java.io.IOException if an input/output error occurs
    public boolean hasResourcePermission(Request request,
                                         Response response,
                                         SecurityConstraint [] constraint,
                                         Context context)
        throws IOException;
    
    
    
Return true if the specified Principal has the specified security role, within the context of this Realm; otherwise return false.

Parameters:
principal Principal for whom the role is to be checked
role Security role to be checked
    public boolean hasRole(Principal principalString role);

        
Enforce any user data constraint required by the security constraint guarding this request URI. Return true if this constraint was not violated and processing should continue, or false if we have created a response already.

Parameters:
request Request we are processing
response Response we are creating
constraint Security constraint being checked
Throws:
java.io.IOException if an input/output error occurs
    public boolean hasUserDataPermission(Request request,
                                         Response response,
                                         SecurityConstraint []constraint)
        throws IOException;
    
    
Remove a property change listener from this component.

Parameters:
listener The listener to remove
New to GrepCode? Check out our FAQ X