Package org.globus.gsi.gssapi.jaas

# Class JaasSubject

java.lang.Object
org.globus.gsi.gssapi.jaas.JaasSubject

Direct Known Subclasses:
  `GlobusSubject`, `StandardSubject`

public abstract class JaasSubject extends Object
Generic JAAS Subject helper API that provides abstraction layer on top of vendor-specific JAAS Subject extensions implementations. Most vendors defined their own JAAS Subject helper classes because of the Subject propagation issue in JAAS.

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`JaasSubject()`

## Method Summary

Modifier and Type
Method
Description
`static Object`
`doAs(Subject subject, PrivilegedAction action)`
A convenience method, calls `JaasSubject.getJaasSubject().runAs()`.
`static Object`
`doAs(Subject subject, PrivilegedExceptionAction action)`
A convenience method, calls `JaasSubject.getJaasSubject().runAs()`.
`static Subject`
`getCurrentSubject()`
A convenience method, calls `JaasSubject.getJaasSubject().getSubject()`.
`static JaasSubject`
`getJaasSubject()`
Gets current implementation of the `JaasSubject` API.
`abstract Subject`
`getSubject()`
SPI method.
`abstract Object`
`runAs(Subject subject, PrivilegedAction action)`
SPI method.
`abstract Object`
`runAs(Subject subject, PrivilegedExceptionAction action)`
SPI method.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### JaasSubject

protected JaasSubject()

## Method Details

### getJaasSubject

public static JaasSubject getJaasSubject()
Gets current implementation of the `JaasSubject` API. The method attempts to load a `JaasSubject` implementation by loading a class specified by the "org.globus.jaas.provider" system property. If the property is not set the default Globus implementation is loaded.

### getSubject

public abstract Subject getSubject()
SPI method.

### runAs

public abstract Object runAs(Subject subject, PrivilegedAction action)
SPI method.

### runAs

public abstract Object runAs(Subject subject, PrivilegedExceptionAction action) throws PrivilegedActionException
SPI method.

Throws:
  `PrivilegedActionException`

### doAs

public static Object doAs(Subject subject, PrivilegedExceptionAction action) throws PrivilegedActionException
A convenience method, calls `JaasSubject.getJaasSubject().runAs()`.

Throws:
  `PrivilegedActionException`

### doAs

public static Object doAs(Subject subject, PrivilegedAction action)
A convenience method, calls `JaasSubject.getJaasSubject().runAs()`.

### getCurrentSubject

public static Subject getCurrentSubject()
A convenience method, calls `JaasSubject.getJaasSubject().getSubject()`.