Oracle Fusion Middleware extensions for Logging and Diagnostic
11g Release 1 (11.1.1.6)

E22565-06

oracle.apps.fnd.appltest.diagfwk.engine.provider.security
Class AbstractJPSSecurityProvider

java.lang.Object
  extended by oracle.apps.fnd.appltest.diagfwk.common.DiagBaseFactory
      extended by oracle.apps.fnd.appltest.diagfwk.engine.provider.security.SecurityProvider
          extended by oracle.apps.fnd.appltest.diagfwk.engine.provider.security.AbstractJPSSecurityProvider
All Implemented Interfaces:
DiagConstants
Direct Known Subclasses:
CLISecurityProvider, JAASXSSecurityProvider

public abstract class AbstractJPSSecurityProvider
extends SecurityProvider

Since:
11.1.1.0.0
Version:
$Date: 2010/04/06 14:14:54 $ $Author: ilawler $

Nested Class Summary
 
Nested classes/interfaces inherited from interface oracle.apps.fnd.appltest.diagfwk.common.DiagConstants
DiagConstants.ExecutionMode, DiagConstants.Format, DiagConstants.LinkType, DiagConstants.Status
 
Field Summary
protected static java.lang.String APPLTEST_APPID_PREFIX
          prefix for accepted appltest appids
protected static java.lang.String APPLTEST_APPID_SUFFIX
          prefix for accepted appltest appids
 
Fields inherited from class oracle.apps.fnd.appltest.diagfwk.engine.provider.security.SecurityProvider
DEFAULT_DIAGNOSTICS_POLICY_STRIPE_NAME
 
Fields inherited from interface oracle.apps.fnd.appltest.diagfwk.common.DiagConstants
APPS_MSG_ID_TAG_NAME, CFG_ADR_PROVIDER_CLASS, CFG_CACHE_PROVIDER_CLASS, CFG_CRED_PROVIDER_CLASS, CFG_DAO_FACTORY_CLASS, CFG_DB_CONN_INFO_PROVIDER_CLASS, CFG_DB_CONN_PROVIDER_CLASS, CFG_NLS_PROVIDER_CLASS, CFG_PLSQL_PROVIDER_CLASS, CFG_PROFILE_PROVIDER_CLASS, CFG_SECURITY_PROVIDER_CLASS, CFG_SESSION_INFO_PROVIDER_CLASS, CFG_URL_PROVIDER_FACTORY_CLASS, CFG_WLS_MBEANSRV_CONNINFO_PROVIDER_CLASS, DATA_SECURITY_PERMISSION_ALLOWED, DATA_SECURITY_PERMISSION_NOT_ALLOWED, DELIM_URL, EXEC_MODE_CLI, EXEC_MODE_ESS, EXEC_MODE_INCIDENT, EXEC_MODE_JAVA, EXEC_MODE_UI, EXECUTABLE_TYPE_JAVA, EXECUTABLE_TYPE_PLSQL, EXECUTABLE_TYPE_TESTREF, FORMAT_HTML, FORMAT_XML, GUID_ORACLE_MINUS1, GUID_ORACLE_ZERO, INPUTS_STATUS_ALL_OPT_INPUTS, INPUTS_STATUS_NO_INPUTS, INPUTS_STATUS_REQ_INPUTS_NO_DEFAULTS, INPUTS_STATUS_REQ_INPUTS_W_DEFAULTS, IO_FLAG_I, IO_FLAG_O, JMX_API_BASE_OBJECT_NAME, LINK_EXTERNAL, LINK_INTERNAL, LINK_METALINK, N, NLS_BUNDLE_JAVA_RES, NLS_BUNDLE_MSG_SVC, NLS_BUNDLE_RES_REF, NLS_BUNDLE_XLIFF, NO, NULL, ODF_MBEAN_DOMAIN_NAME, PARAM_MON_INTERVAL, PLSQL_DEBUG_ENABLED_SYSTEM_PROP, PREREQ_TYPE_TAG_VALUE, PREREQ_TYPE_TEST, SECONDS_IN_ONE_DAY, SECONDS_IN_ONE_HOUR, STATUS_CANCELED, STATUS_EXECERROR, STATUS_FAILURE, STATUS_RUNNING, STATUS_SUCCESS, STATUS_WARNING, SYS_PROP_MAX_MONITOR_INTERNVAL, SYS_PROP_MAX_NUM_THREADS, SYSPROP_APPCONNFILE, SYSPROP_DIAG_CONFIG_FILE, TAG_TYPE_DIAG, TAG_TYPE_TAXONOMY, TEST_TYPE_DECL, TEST_TYPE_JAVA, USER_NAME, WEB_APP_NAME_TAG_NAME, Y, YES
 
Constructor Summary
AbstractJPSSecurityProvider()
           
 
Method Summary
 javax.security.auth.Subject authenticateUserJ2EE(java.lang.String user, java.lang.String password)
          Authenticate a user in a J2EE-like context (e.g.
 javax.security.auth.Subject authenticateUserJ2SE(java.lang.String user, java.lang.String password)
          Authenticate a user in a J2SE-like context (e.g.
 void checkAccessJMXAPI(javax.security.auth.Subject wlsSubject)
           
 java.util.Map<java.lang.String,java.lang.String> getAllUserRoles()
           
 java.lang.String getDiagJPSPolicyContextID()
          If the wrong value is produced here, the addJpsRoles method called by the asserter will just end up being a no-op because it can't find a matching application policy to search.
 java.util.List<java.lang.String> getEnterpriseRoleNames()
           
protected  oracle.adf.share.security.SecurityContext getSecurityContext()
           
 javax.security.auth.Subject getSubject()
           
 java.lang.String getUserGUID()
          
 java.lang.String getUserName()
          
 boolean isJ2EE()
           
 java.lang.Boolean isUserAuthenticated()
           
protected  void queryUserInfo()
           
 
Methods inherited from class oracle.apps.fnd.appltest.diagfwk.engine.provider.security.SecurityProvider
authenticateUser, getIsDumpExec, getIsRemoteInAppExec, getPillarJPSPolicyContextID, instance, setIsDumpExec, setIsRemoteInAppExec
 
Methods inherited from class oracle.apps.fnd.appltest.diagfwk.common.DiagBaseFactory
createClassLoader, loadClassFor
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

APPLTEST_APPID_PREFIX

protected static final java.lang.String APPLTEST_APPID_PREFIX
prefix for accepted appltest appids

See Also:
Constant Field Values

APPLTEST_APPID_SUFFIX

protected static final java.lang.String APPLTEST_APPID_SUFFIX
prefix for accepted appltest appids

See Also:
Constant Field Values
Constructor Detail

AbstractJPSSecurityProvider

public AbstractJPSSecurityProvider()
Method Detail

getDiagJPSPolicyContextID

public java.lang.String getDiagJPSPolicyContextID()
If the wrong value is produced here, the addJpsRoles method called by the asserter will just end up being a no-op because it can't find a matching application policy to search. This is a temporary method to return the JPS PolicyStore security context ID for the stripe containing Diagnostics roles so that we can get application roles in JMX/J2SE contexts. The Policy Context ID is used to determine which "application" we're in to figure out what stripe of the policy store we need to traverse to look for app roles to attach to our subject's principals.

Specified by:
getDiagJPSPolicyContextID in class SecurityProvider
Returns:
application context ID as expected by the PolicyStore's application map for use in PolicyContext.setContextID
See Also:
SecurityProvider.getDiagJPSPolicyContextID()

getSecurityContext

protected oracle.adf.share.security.SecurityContext getSecurityContext()
Returns:

isUserAuthenticated

public java.lang.Boolean isUserAuthenticated()
Specified by:
isUserAuthenticated in class SecurityProvider
Returns:
true if the user is logged in/authenticated

isJ2EE

public boolean isJ2EE()
Returns:
true if in a J2EE container

authenticateUserJ2EE

public javax.security.auth.Subject authenticateUserJ2EE(java.lang.String user,
                                                        java.lang.String password)
Authenticate a user in a J2EE-like context (e.g. in-WLS). Differs from the J2SE auth because the subject is not plugged into the ADFContext by default, instead it is assumed the user will perform a Subject.doAS.

Parameters:
user -
password -
Returns:
authenticated user's Subject

authenticateUserJ2SE

public javax.security.auth.Subject authenticateUserJ2SE(java.lang.String user,
                                                        java.lang.String password)
Authenticate a user in a J2SE-like context (e.g. CLI, Unit Tests). Differs from the J2EE auth because it uses a subtle trick in the ADFContext's SecurityContext to allow subsequent code to see a valid Subject without needing to do a Subject.doAs call which allows this to be called multiple times in a session without the need to co-opt the thread each time.

Parameters:
user -
password -
Returns:
authenticated user's Subject

getSubject

public javax.security.auth.Subject getSubject()
Specified by:
getSubject in class SecurityProvider
Returns:
the subject of the currently logged in user

queryUserInfo

protected void queryUserInfo()

getUserName

public java.lang.String getUserName()

Specified by:
getUserName in class SecurityProvider
Returns:
the user name of the currently logged in user
See Also:
SecurityProvider.getUserName()

getUserGUID

public java.lang.String getUserGUID()

Specified by:
getUserGUID in class SecurityProvider
Returns:
the user GUID of the currently logged in user
See Also:
SecurityProvider.getUserGUID()

getAllUserRoles

public java.util.Map<java.lang.String,java.lang.String> getAllUserRoles()
Specified by:
getAllUserRoles in class SecurityProvider
Returns:
Map of [role name->role GUI]D for all enterprise, app roles contained in the currently logged in user's Subject.

getEnterpriseRoleNames

public java.util.List<java.lang.String> getEnterpriseRoleNames()
Specified by:
getEnterpriseRoleNames in class SecurityProvider
Returns:
the list of enterprise role names contained in the currently logged in user's Subject.

checkAccessJMXAPI

public void checkAccessJMXAPI(javax.security.auth.Subject wlsSubject)
Specified by:
checkAccessJMXAPI in class SecurityProvider
Parameters:
wlsSubject - current user's WLS subject

Oracle Fusion Middleware extensions for Logging and Diagnostic
11g Release 1 (11.1.1.6)

E22565-06

Copyright © 2012 Oracle. All Rights Reserved.