Oracle Fusion Middleware
Oracle WebLogic Server API Reference
11g Release 1 (10.3.4)

Part Number E13941-04

weblogic.security.service
Class URLResource

java.lang.Object
  extended by weblogic.security.service.ResourceBase
      extended by weblogic.security.service.URLResource
All Implemented Interfaces:
Serializable, Resource, SelfDescribingResource, SelfDescribingResourceV2

public final class URLResource
extends ResourceBase

The URLResource class is used by a container to specify the URL resource (and method related to the resource) that a caller is attempting to access.

Case sensitivity of the contextPath and URI is determined by the WebAppFilesCaseInsensitive attribute on the SecurityConfigurationMBean. The default value is to handle the contextPath and URI as case sensitive on all platforms. The weblogic.security.URLResourceCaseMapping property can no longer be used to change behavior on the server command line.

The toString format (which is produced by the ResourceBase class) for a URL resource is:
type=<url>, application=myApp, contextPath=/mywebapp, uri=/foo/bar/my.jsp, httpMethod=GET

See Also:
Serialized Form

Field Summary
 
Fields inherited from class weblogic.security.service.ResourceBase
id, length, NO_PARENT, parent, resStr, SCOPE_RESOURCE_ACTION, values
 
Fields inherited from interface weblogic.security.spi.SelfDescribingResource
LIST_FIELD_TYPE, NORMAL_FIELD_TYPE, PATH_FIELD_TYPE, UNDEFINED_FIELD_TYPE
 
Constructor Summary
URLResource(String application, String contextPathArg, String uriArg, String httpMethod, String transportType)
          Constructs a new URLResource with a target name composed from the application, contextPath, URI, httpMethod, and transportType parameters.
URLResource(String application, String contextPathArg, String uriArg, String httpMethod, String transportType, boolean areWebAppFilesCaseInsensitive)
           
 
Method Summary
 boolean equals(Object obj)
          Compares this resource to the resource in the specified object.
 String getApplicationName()
          Gets the name of the application associated with the URLResource.
 String getContextPath()
          Gets the URI of the Web component.
 int getFieldType(String fieldName)
          Describe getFieldType method here.
 String getHttpMethod()
          Gets the HTTP method of the URL resource.
 String[] getKeys()
          Gets keys for the URLresource.
 int getRepeatingFieldIndex()
          getRepeatingFieldIndex returns an index into the array returned by getKeys() that signifies what part of the Resource's fields repeat as the hierarchy is traversed.
 int getRepeatingFieldTerminatingIndex()
          The field returned by getRepeatingFieldIndex is repeated as the Resource is shortened up to and including this field index.
 String getTransportType()
          Gets the transport guarantee required to access the URLResource.
 String getType()
          Gets the type of this resource (URLResource).
 String getURI()
          Gets the URI of the Web component.
protected  void init(String[] values, int len, long seed, String httpMethod, String suffix, boolean URIUnchanged)
          Initializes the URLResource with the array of values.
protected  Resource makeParent()
          Gets a Resource object that represents the parent of the current URLResource.
 boolean mappingToLowerCase()
          Returns true if we are mapping the contextPath and URI to lower case upon creation.
 
Methods inherited from class weblogic.security.service.ResourceBase
appendArrayValue, appendValue, getID, getParentResource, getValues, hashCode, init, init, isTransitiveField, reset, toString, writeResourceString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

URLResource

public URLResource(String application,
                   String contextPathArg,
                   String uriArg,
                   String httpMethod,
                   String transportType)
Constructs a new URLResource with a target name composed from the application, contextPath, URI, httpMethod, and transportType parameters.

For example, if the web.xml deployment descriptor in mywebapp.war (which is inside myApp.ear) contains the following elements:

<web-app>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>MyResource</web-resource-name>
      <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
      <role-name>MyRole</role-name>
    </auth-constraint>
  </security-constraint>
  ...
</web-app>

If the URL to access the resource is http://MyServer:MyPort/mywebapp/foo/bar/my.jsp?x=y, then the context path is "/mywebapp", the servlet path is "/foo/bar/my.jsp", and the path info is "" (null).

Finally, the URLResource is represented as type=<url>, application=myApp, contextPath=/mywebapp, uri=/foo/bar/my.jsp, httpMethod=GET.

This method will map the contextPath and URI to lower case if mappingToLowerCase() returns true.

Parameters:
application - the name of the application in which the resource is deployed, as it appears in the corresponding <display-name> element. The <display-name> element is associated with an <application> element in the deployment descriptor, in an .ear file.

contextPathArg - the context path for the Web application.

uriArg - the URI of the resource. This is the servlet path and the path info as specified in the Servlet 2.3 spec. This can be thought of as the URI, relative to the context path.

httpMethod - the name of the HTTP method on the URL resource, as it appears in the corresponding <http-method> element in the deployment descriptor. A value of null indicates that the security policy for the resource pertains to all methods that match the other parameters of the resource specification, without consideration for the method name.

transportType - the transport guarantee required to access the URL resource, as it appears in the corresponding <transport-guarantee> element in the deployment descriptor. A value of null indicates that the associated method of the URL resource can be accessed over any transport. If httpMethod is null then parameter must also be null. Valid values for this parameter are restricted to the following:
  • INTEGRAL
  • CONFIDENTIAL

URLResource

public URLResource(String application,
                   String contextPathArg,
                   String uriArg,
                   String httpMethod,
                   String transportType,
                   boolean areWebAppFilesCaseInsensitive)
Method Detail

init

protected void init(String[] values,
                    int len,
                    long seed,
                    String httpMethod,
                    String suffix,
                    boolean URIUnchanged)
Initializes the URLResource with the array of values. Computes a resource ID as a hash function of the resource type and each of its non-null values, then stores the suffix for later use.

This method will not map the contextPath and URI to lower case. The caller must check the value of mappingToLowerCase() and map them if necessary.

Parameters:
values - the values with which to initialize the URLResource. The values must be in the same order as the toString prints them.

len - the number of values to use. This can be less than the length of values, in which case the values greater than len will be ignored.

seed - the random number to use in getID calculation.

httpMethod - the HTTP method (for example, "GET"), or null if not applicable.

suffix - the suffix of the file (for example, ".jsp") or null if not applicable.

URIUnchanged - true if we have not changed the URI from how it was passed to us from the container. This is needed to special-case getParentResource().


getType

public String getType()
Gets the type of this resource (URLResource).

Returns:
the type of this resource, represented as a String.


makeParent

protected Resource makeParent()
Gets a Resource object that represents the parent of the current URLResource. If the resource does not have a parent, the value of null must be returned.

The parentage hierarchy for the URLResource (that is, the values returned from successive calls to this method) is:

type=<url>, application=myApp, contextPath="/mywebapp", uri=/foo/bar/my.jsp, httpMethod=GET, transportType=confidential
type=<url>, application=myApp, contextPath="/mywebapp", uri=/foo/bar/my.jsp, httpMethod=GET
type=<url>, application=myApp, contextPath="/mywebapp", uri=/foo/bar/my.jsp
type=<url>, application=myApp, contextPath="/mywebapp", uri=/foo/bar/my.jsp/*, httpMethod=GET
type=<url>, application=myApp, contextPath="/mywebapp", uri=/foo/bar/my.jsp/*
type=<url>, application=myApp, contextPath=/MyWebApp, uri=/foo/Bar/*, httpMethod=GET type=<url>, application=myApp, contextPath=/MyWebApp, uri=/foo/Bar/* type=<url>, application=myApp, contextPath="/mywebapp", uri=/foo/*
, httpMethod=GET type=<url>, application=myApp, contextPath="/mywebapp", uri=/foo/*
type=<url>, application=myApp, contextPath="/mywebapp", uri=/*
, httpMethod=GET type=<url>, application=myApp, contextPath="/mywebapp", uri=/*
type=<url>, application=myApp, contextPath="/mywebapp", uri=*.jsp
, httpMethod=GET type=<url>, application=myApp, contextPath="/mywebapp", uri=*.jsp
type=<url>, application=myApp, contextPath="/mywebapp", uri=/
, httpMethod=GET type=<url>, application=myApp, contextPath="/mywebapp", uri=/
type=<url>, application=myApp, contextPath="/mywebapp"
type=<url>, application=myApp
type=<app>, application=myApp
type=<url>

Overrides:
makeParent in class ResourceBase
Returns:
the Resource object of the parent resource.


getKeys

public String[] getKeys()
Gets keys for the URLresource.

Specified by:
getKeys in interface Resource
Specified by:
getKeys in class ResourceBase
Returns:
an array of Strings containing the URLResource's keys.


getFieldType

public int getFieldType(String fieldName)
Description copied from interface: SelfDescribingResource
Describe getFieldType method here.

Specified by:
getFieldType in interface SelfDescribingResource
Overrides:
getFieldType in class ResourceBase
Parameters:
fieldName - the String name of the field being queried.
Returns:
the int field type of fieldName

getRepeatingFieldIndex

public int getRepeatingFieldIndex()
Description copied from interface: SelfDescribingResource
getRepeatingFieldIndex returns an index into the array returned by getKeys() that signifies what part of the Resource's fields repeat as the hierarchy is traversed. For example, in the URLResource, the httpMethod is repeated as the hierarchy is walked. A value of -1 indicates that there are no repeating fields.

Specified by:
getRepeatingFieldIndex in interface SelfDescribingResource
Overrides:
getRepeatingFieldIndex in class ResourceBase
Returns:
the index of the repeating fields or -1 if none

getRepeatingFieldTerminatingIndex

public int getRepeatingFieldTerminatingIndex()
Description copied from interface: SelfDescribingResource
The field returned by getRepeatingFieldIndex is repeated as the Resource is shortened up to and including this field index. After this field index the repetition is no longer applied.

Specified by:
getRepeatingFieldTerminatingIndex in interface SelfDescribingResource
Overrides:
getRepeatingFieldTerminatingIndex in class ResourceBase
Returns:
an int describing the terminating index or getKeys().length if none

getApplicationName

public String getApplicationName()
Gets the name of the application associated with the URLResource.

Returns:
the name of the application associated with the URLResource, represented as a String.


getContextPath

public String getContextPath()
Gets the URI of the Web component.

Returns:
a String representing the URI of the Web component.


getURI

public String getURI()
Gets the URI of the Web component.

Returns:
the URI of the Web component, represented as a String.


getHttpMethod

public String getHttpMethod()
Gets the HTTP method of the URL resource.

Returns:
the name of the HTTP method on the URLResource, represented as a String.


getTransportType

public String getTransportType()
Gets the transport guarantee required to access the URLResource.

Returns:
the transport guarantee required to access the URLResource.


mappingToLowerCase

public boolean mappingToLowerCase()
Returns true if we are mapping the contextPath and URI to lower case upon creation.


equals

public boolean equals(Object obj)
Compares this resource to the resource in the specified object.

Specified by:
equals in interface Resource
Overrides:
equals in class ResourceBase
Parameters:
obj - the other resource with which to compare this resource.

Returns:
TRUE if the resource passed in matches this resource, and FALSE otherwise.

See Also:
Object.equals(Object)

Copyright 1996, 2010, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

Oracle Fusion Middleware
Oracle WebLogic Server API Reference
11g Release 1 (10.3.4)

Part Number E13941-04