Removed duplicate JACC (Jakarta Authorization) module.
This module used code incompatible with JDK 11. Activated the other
module by default now.
Signed-off-by: arjantijms <arjan.tijms@gmail.com>
diff --git a/appserver/admin/admin-core/src/test/resources/UpgradeTest.xml b/appserver/admin/admin-core/src/test/resources/UpgradeTest.xml
index f790b84..89baf0c 100644
--- a/appserver/admin/admin-core/src/test/resources/UpgradeTest.xml
+++ b/appserver/admin/admin-core/src/test/resources/UpgradeTest.xml
@@ -147,7 +147,7 @@
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm"></auth-realm>
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory"></jacc-provider>
diff --git a/appserver/admin/template/src/main/resources/config/domain.xml b/appserver/admin/template/src/main/resources/config/domain.xml
index 016f165..ff0e42b 100644
--- a/appserver/admin/template/src/main/resources/config/domain.xml
+++ b/appserver/admin/template/src/main/resources/config/domain.xml
@@ -103,7 +103,7 @@
<property value="fileRealm" name="jaas-context" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl" policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default">
+ <jacc-provider policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default">
<property value="${com.sun.aas.instanceRoot}/generated/policy" name="repository" />
</jacc-provider>
<jacc-provider policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" />
@@ -300,7 +300,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
diff --git a/appserver/admingui/common/src/main/help/en/help/task-jaccprovidernew.html b/appserver/admingui/common/src/main/help/en/help/task-jaccprovidernew.html
index c0659f0..e6d98d5 100644
--- a/appserver/admingui/common/src/main/help/en/help/task-jaccprovidernew.html
+++ b/appserver/admingui/common/src/main/help/en/help/task-jaccprovidernew.html
@@ -45,11 +45,11 @@
</li>
<li>
<p>In the Policy Configuration field, type the name of the class that implements the policy configuration factory.</p>
-<p>The <code>default</code> provider uses <code>com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl</code>. The <code>simple</code> provider uses <code>com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory</code>.</p>
+<p>The <code>default</code> provider uses <code>com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory</code>. The <code>simple</code> provider uses <code>com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory</code>.</p>
</li>
<li>
<p>In the Policy Provider field, type the name of the class that implements the policy factory.</p>
-<p>The <code>default</code> provider uses <code>com.sun.enterprise.security.provider.PolicyWrapper</code>. The <code>simple</code> provider uses <code>com.sun.enterprise.security.jacc.provider.SimplePolicyProvider</code>.</p>
+<p>The <code>default</code> provider uses <code>com.sun.enterprise.security.jacc.provider.SimplePolicyProvider</code>. The <code>simple</code> provider uses <code>com.sun.enterprise.security.jacc.provider.SimplePolicyProvider</code>.</p>
</li>
<li>
<p>In the Additional Properties section, specify additional properties.</p>
diff --git a/appserver/connectors/admin/src/test/resources/DomainTest.xml b/appserver/connectors/admin/src/test/resources/DomainTest.xml
index 0e9429d..cbf7a8b 100644
--- a/appserver/connectors/admin/src/test/resources/DomainTest.xml
+++ b/appserver/connectors/admin/src/test/resources/DomainTest.xml
@@ -83,7 +83,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
diff --git a/appserver/connectors/connectors-internal-api/src/test/resources/DomainTest.xml b/appserver/connectors/connectors-internal-api/src/test/resources/DomainTest.xml
index 81e6116..1483d13 100644
--- a/appserver/connectors/connectors-internal-api/src/test/resources/DomainTest.xml
+++ b/appserver/connectors/connectors-internal-api/src/test/resources/DomainTest.xml
@@ -77,7 +77,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
diff --git a/appserver/connectors/connectors-internal-api/src/test/resources/PasswordAliasTest.xml b/appserver/connectors/connectors-internal-api/src/test/resources/PasswordAliasTest.xml
index 9224925..6be8d68 100644
--- a/appserver/connectors/connectors-internal-api/src/test/resources/PasswordAliasTest.xml
+++ b/appserver/connectors/connectors-internal-api/src/test/resources/PasswordAliasTest.xml
@@ -85,7 +85,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
diff --git a/appserver/jdbc/admin/src/test/resources/DomainTest.xml b/appserver/jdbc/admin/src/test/resources/DomainTest.xml
index ed36202..f525855 100644
--- a/appserver/jdbc/admin/src/test/resources/DomainTest.xml
+++ b/appserver/jdbc/admin/src/test/resources/DomainTest.xml
@@ -70,7 +70,7 @@
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate"></auth-realm>
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.ee.Audit" name="default">
diff --git a/appserver/jdbc/jdbc-runtime/src/test/resources/DomainTest.xml b/appserver/jdbc/jdbc-runtime/src/test/resources/DomainTest.xml
index 47a2415..74d889d 100644
--- a/appserver/jdbc/jdbc-runtime/src/test/resources/DomainTest.xml
+++ b/appserver/jdbc/jdbc-runtime/src/test/resources/DomainTest.xml
@@ -91,7 +91,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
diff --git a/appserver/orb/orb-connector/src/test/resources/DomainTest.xml b/appserver/orb/orb-connector/src/test/resources/DomainTest.xml
index ebf7266..01d6990 100644
--- a/appserver/orb/orb-connector/src/test/resources/DomainTest.xml
+++ b/appserver/orb/orb-connector/src/test/resources/DomainTest.xml
@@ -78,7 +78,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
diff --git a/appserver/resources/mail/mail-connector/src/test/resources/DomainTest.xml b/appserver/resources/mail/mail-connector/src/test/resources/DomainTest.xml
index 0e9429d..cbf7a8b 100644
--- a/appserver/resources/mail/mail-connector/src/test/resources/DomainTest.xml
+++ b/appserver/resources/mail/mail-connector/src/test/resources/DomainTest.xml
@@ -83,7 +83,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
diff --git a/appserver/resources/resources-connector/src/test/resources/DomainTest.xml b/appserver/resources/resources-connector/src/test/resources/DomainTest.xml
index cd5d85c..952665b 100644
--- a/appserver/resources/resources-connector/src/test/resources/DomainTest.xml
+++ b/appserver/resources/resources-connector/src/test/resources/DomainTest.xml
@@ -83,7 +83,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
diff --git a/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/provider/BasePolicyWrapper.java b/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/provider/BasePolicyWrapper.java
deleted file mode 100644
index 986064b..0000000
--- a/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/provider/BasePolicyWrapper.java
+++ /dev/null
@@ -1,647 +0,0 @@
-/*
- * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0, which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the
- * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
- * version 2 with the GNU Classpath Exception, which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- */
-
-/*
- * BasePolicyWrapper.java
- *
- * @author Harpreet Singh (harpreet.singh@sun.com)
- * @author Ron Monzillo
- * @version
- *
- * Created on May 23, 2002, 1:56 PM
- */
-
-package com.sun.enterprise.security.provider;
-
-import java.io.File;
-import java.net.URI;
-import java.net.URL;
-import java.security.AccessController;
-import java.security.CodeSource;
-import java.security.NoSuchAlgorithmException;
-import java.security.Permission;
-import java.security.PermissionCollection;
-import java.security.Permissions;
-import java.security.Policy;
-import java.security.PrivilegedAction;
-import java.security.ProtectionDomain;
-import java.security.Security;
-import java.util.Enumeration;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import javax.management.MBeanPermission;
-
-import com.sun.enterprise.util.LocalStringManagerImpl;
-import com.sun.logging.LogDomains;
-import com.sun.xml.txw2.IllegalSignatureException;
-
-import jakarta.security.jacc.EJBRoleRefPermission;
-import jakarta.security.jacc.PolicyContext;
-import jakarta.security.jacc.PolicyContextException;
-import jakarta.security.jacc.WebResourcePermission;
-import jakarta.security.jacc.WebRoleRefPermission;
-
-/**
- * This class is a wrapper around the default jdk policy file
- * implementation. BasePolicyWrapper is installed as the JRE policy object
- * It multiples policy decisions to the context specific instance of
- * sun.security.provider.PolicyFile.
- * Although this Policy provider is implemented using another Policy class,
- * this class is not a "delegating Policy provider" as defined by JACC, and
- * as such it SHOULD not be configured using the JACC system property
- * jakarta.security.jacc.policy.provider.
- * @author Harpreet Singh (harpreet.singh@sun.com)
- * @author Jean-Francois Arcand
- * @author Ron Monzillo
- *
- */
-public class BasePolicyWrapper extends java.security.Policy {
-
- private static final String FACTORY_NAME =
- "jakarta.security.jacc.PolicyConfigurationFactory.provider";
- private static final String myFactoryName =
- "com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl";
- // this is the jdk policy file instance
- private java.security.Policy policy = null;
-
- private static Logger logger = Logger.getLogger(LogDomains.SECURITY_LOGGER);
- private static LocalStringManagerImpl localStrings =
- new LocalStringManagerImpl(BasePolicyWrapper.class);
-
- static String logMsg(Level level,String key,Object[] params,String defMsg){
- String msg = (key == null ? defMsg : localStrings.getLocalString
- (key,defMsg == null ? key : defMsg, params));
- logger.log(level,msg);
- return msg;
- }
-
- private static final String REUSE = "java.security.Policy.supportsReuse";
-
- /**
- * Name of the system property to enable detecting and avoiding reentrancy.
- * This property can be set using <jvm-options> in domain.xml. If not set
- * or set to false, this class will detect or avoid reentrancy in policy
- * evaluation. Note that if SecurityManager is turned off, this feature is
- * always turned off.
- * Another design approach is to name the property differently
- * and use a list of context ids as its value, so that this feature may be
- * enabled for selected contexts.
- */
- private static final String IGNORE_REENTRANCY_PROP_NAME =
- "com.sun.enterprise.security.provider.PolicyWrapper.ignoreReentrancy";
-
- /**
- * Flag to indicate if detecting and avoiding reentrancy is enabled.
- * If SecurityManager is turned off, reentrancy is less likely to occur and
- * this feature is always off; else if the system property IGNORE_REENTRANCY_PROP_NAME
- * is not set, or set to false in domain.xml, this feature is on;
- *
- */
- private static final boolean avoidReentrancy =
- (!Boolean.getBoolean(IGNORE_REENTRANCY_PROP_NAME)) &&
- (System.getSecurityManager() != null);
-
- /**
- * ThreadLocal object to keep track of the reentrancy status of each thread.
- * It contains a byte[] object whose single element is either 0 (initial
- * value or no reentrancy), or 1 (current thread is reentrant). When a
- * thread exists the implies method, byte[0] is alwasy reset to 0.
- */
- private static ThreadLocal reentrancyStatus;
-
- static {
- if(avoidReentrancy) {
- reentrancyStatus = new ThreadLocal() {
- protected synchronized Object initialValue() {
- return new byte[]{0};
- }
- };
- }
- }
-
-
- /** Creates a new instance of BasePolicyWrapper */
- public BasePolicyWrapper() {
- // the jdk policy file implementation
- policy = getNewPolicy();
- refreshTime = 0L;
- // call the following routine to compute the actual refreshTime
- defaultContextChanged();
- }
-
- /** gets the underlying PolicyFile implementation
- * can be overridden by Subclass
- */
- protected java.security.Policy getNewPolicy() {
- try {
- return Policy.getInstance("JavaPolicy", null);
- } catch (NoSuchAlgorithmException e) {
- // TODO Auto-generated catch block
- throw new IllegalSignatureException(e);
- }
- }
-
- /**
- * Evaluates the global policy and returns a
- * PermissionCollection object specifying the set of
- * permissions allowed for code from the specified
- * code source.
- *
- * @param codesource the CodeSource associated with the caller.
- * This encapsulates the original location of the code (where the code
- * came from) and the public key(s) of its signer.
- *
- * @return the set of permissions allowed for code from <i>codesource</i>
- * according to the policy.The returned set of permissions must be
- * a new mutable instance and it must support heterogeneous
- * Permission types.
- *
- */
- public PermissionCollection getPermissions(CodeSource codesource) {
- String contextId = PolicyContext.getContextID();
- PolicyConfigurationImpl pci = getPolicyConfigForContext(contextId);
- Policy appPolicy = getPolicy(pci);
- PermissionCollection perms = appPolicy.getPermissions(codesource);
- if (perms != null) {
- perms = removeExcludedPermissions(pci,perms);
- }
- if (logger.isLoggable(Level.FINEST)){
- logger.finest("JACC Policy Provider: PolicyWrapper.getPermissions(cs), context ("+contextId+") codesource ("+codesource+") permissions: "+perms);
- }
- return perms;
- }
-
- /**
- * Evaluates the global policy and returns a
- * PermissionCollection object specifying the set of
- * permissions allowed given the characteristics of the
- * protection domain.
- *
- * @param domain the ProtectionDomain associated with the caller.
- *
- * @return the set of permissions allowed for the <i>domain</i>
- * according to the policy.The returned set of permissions must be
- * a new mutable instance and it must support heterogeneous
- * Permission types.
- *
- * @see java.security.ProtectionDomain
- * @see java.security.SecureClassLoader
- * @since 1.4
- */
- public PermissionCollection getPermissions(ProtectionDomain domain) {
- String contextId = PolicyContext.getContextID();
- PolicyConfigurationImpl pci = getPolicyConfigForContext(contextId);
- Policy appPolicy = getPolicy(pci);
- PermissionCollection perms = appPolicy.getPermissions(domain);
- if (perms != null) {
- perms = removeExcludedPermissions(pci,perms);
- }
- if (logger.isLoggable(Level.FINEST)){
- logger.finest("JACC Policy Provider: PolicyWrapper.getPermissions(d), context ("+contextId+") permissions: "+perms);
- }
- return perms;
- }
-
- /**
- * Evaluates the global policy for the permissions granted to
- * the ProtectionDomain and tests whether the permission is
- * granted.
- *
- * @param domain the ProtectionDomain to test
- * @param permission the Permission object to be tested for implication.
- *
- * @return true if "permission" is a proper subset of a permission
- * granted to this ProtectionDomain.
- *
- * @see java.security.ProtectionDomain
- * @since 1.4
- */
- public boolean implies(ProtectionDomain domain, Permission permission) {
- if(avoidReentrancy) {
- byte[] alreadyCalled = (byte[]) reentrancyStatus.get();
- if(alreadyCalled[0] == 1) {
- return true;
- } else {
- alreadyCalled[0] = 1;
- try {
- return doImplies(domain, permission);
- } finally {
- alreadyCalled[0] = 0;
- }
- }
- } else {
- return doImplies(domain, permission);
- }
- }
-
-
- /**
- * Refreshes/reloads the policy configuration. The behavior of this method
- * depends on the implementation. For example, calling <code>refresh</code>
- * on a file-based policy will cause the file to be re-read.
- *
- */
- public void refresh() {
- if (logger.isLoggable(Level.FINE)){
- logger.fine("JACC Policy Provider: Refreshing Policy files!");
- }
-
- // always refreshes default policy context, but refresh
- // of application context depends on PolicyConfigurationImpl
- // this could result in an inconsistency since default context is
- // included in application contexts.
- policy.refresh();
-
- // try to determine if default policy context has changed.
- // if so, force refresh of application contexts.
- // if the following code is not robust enough to detect
- // changes to the policy files read by the default context,
- // then you can configure the provider to force on every refresh
- // (see FORCE_APP_REFRESH_PROP_NAME).
-
- boolean force = defaultContextChanged();
- PolicyConfigurationImpl pciArray[] = null;
- PolicyConfigurationFactoryImpl pcf = getPolicyFactory();
- if (pcf != null) {
- pciArray = pcf.getPolicyConfigurationImpls();
- }
- if (pciArray != null) {
-
- for (PolicyConfigurationImpl pci : pciArray) {
-
- if (pci != null) {
- // false means don't force refresh if no update since
- // last refresh.
- pci.refresh(force);
- }
- }
- }
- try {
- if (PolicyContext.getHandlerKeys().contains(REUSE)) {
- PolicyContext.getContext(REUSE);
- }
- } catch (PolicyContextException pe) {
- throw new IllegalStateException(pe.toString());
- }
-
- }
-
- private PolicyConfigurationImpl getPolicyConfigForContext(String contextId) {
- PolicyConfigurationImpl pci = null;
- PolicyConfigurationFactoryImpl pcf = getPolicyFactory();
- if (contextId != null && pcf != null) {
- pci = pcf.getPolicyConfigurationImpl(contextId);
- }
- return pci;
- }
-
- private Policy getPolicy(PolicyConfigurationImpl pci) {
- Policy result = null;
- if (pci == null) {
- result = policy;
- } else {
- result = pci.getPolicy();
- if (result == null) {
- // the pc is not in service so use the default context
- result = policy;
- }
- }
- return result;
- }
-
- private static Permissions getExcludedPolicy(PolicyConfigurationImpl pci) {
- Permissions result = null;
- if (pci != null) {
- result = pci.getExcludedPolicy();
- }
- return result;
- }
-
- // should find a way to do this that preserves the argument PermissionCollection
- // safe for now, becauuse on EJBMethodPermission, WebResourcePermission, and
- // WebUserDatePermissions are excluded, and none of these classes implement a
- // custom collection.
- private static PermissionCollection removeExcludedPermissions
- (PolicyConfigurationImpl pci, PermissionCollection perms) {
- PermissionCollection result = perms;
- boolean noneRemoved = true;
- Permissions excluded = getExcludedPolicy(pci);
- if (excluded != null && excluded.elements().hasMoreElements()) {
- result = null;
- Enumeration e = perms.elements();
- while (e.hasMoreElements()) {
- Permission granted = (Permission) e.nextElement();
- if (!grantedIsExcluded(granted,excluded)) {
- if (result == null) result = new Permissions();
- result.add(granted);
- } else {
- noneRemoved = false;
- }
- }
- if (noneRemoved) {
- result = perms;
- }
- }
- return result;
- }
-
- private static boolean grantedIsExcluded(Permission granted, Permissions excluded) {
- boolean isExcluded = false;
- if (excluded != null) {
- if (!excluded.implies(granted)) {
- Enumeration e = excluded.elements();
- while (!isExcluded && e.hasMoreElements()) {
- Permission excludedPerm = (Permission) e.nextElement();
- if (granted.implies(excludedPerm)) {
- isExcluded = true;
- }
- }
- } else {
- isExcluded = true;
- }
- }
- if (logger.isLoggable(Level.FINEST)){
- if (isExcluded) {
- logger.finest("JACC Policy Provider: permission is excluded: "+granted);
- }
- }
- return isExcluded;
- }
-
- private boolean doImplies(ProtectionDomain domain, Permission permission) {
- String contextId = PolicyContext.getContextID();
- PolicyConfigurationImpl pci = getPolicyConfigForContext(contextId);
- Policy appPolicy = getPolicy(pci);
-
- boolean result = appPolicy.implies(domain,permission);
-
- //log failures but skip failures that occurred prior to redirecting to
- //login pages, and javax.management.MBeanPermission
- if (!result) {
- if(!(permission instanceof WebResourcePermission) &&
- !(permission instanceof MBeanPermission) &&
- !(permission instanceof WebRoleRefPermission) &&
- !(permission instanceof EJBRoleRefPermission)) {
-
- final String contextId2 = contextId;
- final Permission permission2 = permission;
- final ProtectionDomain domain2 = domain;
- if (logger.isLoggable(Level.FINE)) {
- Exception ex = new Exception();
- ex.fillInStackTrace();
- logger.log(Level.FINE, "JACC Policy Provider, failed Permission Check at :", ex);
- }
- AccessController.doPrivileged(new PrivilegedAction() {
- public Object run() {
- logger.info("JACC Policy Provider: Failed Permission Check, context(" + contextId2 + ")- permission(" + permission2 + ")");
- if (logger.isLoggable(Level.FINE)) {
- logger.fine("Domain that failed(" + domain2 + ")");
- }
- return null;
- }
- });
- }
- } else {
- Permissions excluded = getExcludedPolicy(pci);
- if (excluded != null) {
- result = !grantedIsExcluded(permission,excluded);
- }
- }
-
- // at FINEST: log only denies
- if (!result && logger.isLoggable(Level.FINEST)){
- logger.finest("JACC Policy Provider: PolicyWrapper.implies, context ("+
- contextId+")- result was("+result+") permission ("
- +permission+")");
- }
-
- return result;
- }
-
- /**
- * This method repeats the policy file loading algorithm of
- * sun.security.provider.Policyfile to determine if the refresh
- * resulted in a change to the loaded policy.
- *
- * Note:
- * For backward compatibility with JAAS 1.0 it loads
- * both java.auth.policy and java.policy. However it
- * is recommended that java.auth.policy be not used
- * and the java.policy contain all grant entries including
- * that contain principal-based entries.
- *
- *
- * <p> This object stores the policy for entire Java runtime,
- * and is the amalgamation of multiple static policy
- * configurations that resides in files.
- * The algorithm for locating the policy file(s) and reading their
- * information into this <code>Policy</code> object is:
- *
- * <ol>
- * <li>
- * Loop through the <code>java.security.Security</code> properties,
- * <i>policy.url.1</i>, <i>policy.url.2</i>, ...,
- * <i>policy.url.X</i>" and
- * <i>auth.policy.url.1</i>, <i>auth.policy.url.2</i>, ...,
- * <i>auth.policy.url.X</i>". These properties are set
- * in the Java security properties file, which is located in the file named
- * <JAVA_HOME>/lib/security/java.security, where <JAVA_HOME>
- * refers to the directory where the JDK was installed.
- * Each property value specifies a <code>URL</code> pointing to a
- * policy file to be loaded. Read in and load each policy.
- *
- * <i>auth.policy.url</i> is supported only for backward compatibility.
- *
- * <li>
- * The <code>java.lang.System</code> property <i>java.security.policy</i>
- * may also be set to a <code>URL</code> pointing to another policy file
- * (which is the case when a user uses the -D switch at runtime).
- * If this property is defined, and its use is allowed by the
- * security property file (the Security property,
- * <i>policy.allowSystemProperty</i> is set to <i>true</i>),
- * also load that policy.
- *
- * <li>
- * The <code>java.lang.System</code> property
- * <i>java.security.auth.policy</i> may also be set to a
- * <code>URL</code> pointing to another policy file
- * (which is the case when a user uses the -D switch at runtime).
- * If this property is defined, and its use is allowed by the
- * security property file (the Security property,
- * <i>policy.allowSystemProperty</i> is set to <i>true</i>),
- * also load that policy.
- *
- * <i>java.security.auth.policy</i> is supported only for backward
- * compatibility.
- *
- * If the <i>java.security.policy</i> or
- * <i>java.security.auth.policy</i> property is defined using
- * "==" (rather than "="), then ignore all other specified
- * policies and only load this policy.
- * </ol>
- */
- private static final String POLICY = "java.security.policy";
- private static final String POLICY_URL = "policy.url.";
- private static final String AUTH_POLICY = "java.security.auth.policy";
- private static final String AUTH_POLICY_URL = "auth.policy.url.";
-
- /**
- * Name of the system property that effects whether or not application
- * policy objects are forced to refresh whenever the default context
- * policy object is refreshed. Normally app policy objects only refresh
- * when their app sepcifc policy files have changes. Since app policy
- * objects alos include the rules of the default context; so they should
- * be refreshed whenever the default context files are changed, but the
- * algorithm by which a policy module finds its policy files is complex;
- * and dependent on configuration; so this force switch is provided to
- * ensure refresh of the app contexts (when the performace cost of doing
- * so is acceptable). When this switch is not set, it may be necessary
- * to restart the appserver to force changes in the various policy files to
- * be in effect for specific applications.
- */
- private static final String FORCE_APP_REFRESH_PROP_NAME =
- "com.sun.enterprise.security.provider.PolicyWrapper.force_app_refresh";
-
- /**
- * Flag to indicate if application specific policy objects are forced
- * to refresh (independent of whether or not their app specific policy
- * files have changed).
- */
- private static final boolean forceAppRefresh =
- Boolean.getBoolean(FORCE_APP_REFRESH_PROP_NAME);
-
- private long refreshTime;
-
- synchronized boolean defaultContextChanged() {
-
- if (forceAppRefresh) {
- return true;
- }
-
- long newTime = getTimeStamp(POLICY,POLICY_URL);
- newTime += getTimeStamp(AUTH_POLICY,AUTH_POLICY_URL);
- boolean rvalue = refreshTime != newTime;
- refreshTime = newTime;
- return rvalue;
- }
-
- private static long
- getTimeStamp(final String propname, final String urlname) {
- Long l = (Long) AccessController.doPrivileged(new PrivilegedAction() {
- public Long run() {
- long sum = 0L;
- boolean allowSystemProperties = "true".equalsIgnoreCase
- (Security.getProperty("policy.allowSystemProperty"));
- if (allowSystemProperties) {
- String extra_policy = System.getProperty(propname);
- if (extra_policy != null) {
- boolean overrideAll = false;
- if (extra_policy.startsWith("=")) {
- overrideAll = true;
- extra_policy = extra_policy.substring(1);
- }
- try {
- String path =PropertyExpander.expand(extra_policy);
- File policyFile = new File(path);
- boolean found = policyFile.exists();
- if (!found) {
- URL policy_url = new URL(path);
- if ("file".equals(policy_url.getProtocol())) {
- path = policy_url.getFile().
- replace('/', File.separatorChar);
- path = sun.net.www.ParseUtil.decode(path);
- policyFile = new File(path);
- found = policyFile.exists();
- }
- }
- if (found) {
- sum += policyFile.lastModified();
- if (logger.isLoggable(Level.FINE)) {
- logMsg(Level.FINE,"pc.file_refreshed",
- new Object[]{path},null);
- }
- } else {
- if (logger.isLoggable(Level.FINE)) {
- logMsg(Level.FINE,"pc.file_not_refreshed",
- new Object[]{path},null);
- }
- }
- } catch (Exception e) {
- // ignore.
- }
- if (overrideAll) {
- return Long.valueOf(sum);
- }
- }
- }
- int n = 1;
- String policy_uri;
- while ((policy_uri = Security.getProperty(urlname+n)) != null){
- try {
- URL policy_url = null;
- String expanded_uri = PropertyExpander.expand
- (policy_uri).replace(File.separatorChar, '/');
- if (policy_uri.startsWith("file:${java.home}/") ||
- policy_uri.startsWith("file:${user.home}/")) {
- // this special case accommodates
- // the situation java.home/user.home
- // expand to a single slash, resulting in
- // a file://foo URI
- policy_url = new File
- (expanded_uri.substring(5)).toURI().toURL();
- } else {
- policy_url = new URI(expanded_uri).toURL();
- }
- if ("file".equals(policy_url.getProtocol())) {
- String path = policy_url.getFile().
- replace('/', File.separatorChar);
- path = sun.net.www.ParseUtil.decode(path);
- File policyFile = new File(path);
- if (policyFile.exists()) {
- sum += policyFile.lastModified();
- if (logger.isLoggable(Level.FINE)) {
- logMsg(Level.FINE,"pc.file_refreshed",
- new Object[]{path},null);
- }
- } else {
- if (logger.isLoggable(Level.FINE)) {
- logMsg(Level.FINE,"pc.file_not_refreshed",
- new Object[]{path},null);
- }
- }
- } else {
- if (logger.isLoggable(Level.FINE)) {
- logMsg(Level.FINE,"pc.file_not_refreshed",
- new Object[]{policy_url},null);
- }
- }
- } catch (Exception e) {
- // ignore that policy
- }
- n++;
- }
- return Long.valueOf(sum);
- }
- });
- return l.longValue();
- }
-
- // obtains PolicyConfigurationFactory
- private PolicyConfigurationFactoryImpl getPolicyFactory() {
- return PolicyConfigurationFactoryImpl.getInstance();
- }
-}
diff --git a/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/provider/LocalStrings.properties b/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/provider/LocalStrings.properties
deleted file mode 100644
index 8f7c2a1..0000000
--- a/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/provider/LocalStrings.properties
+++ /dev/null
@@ -1,47 +0,0 @@
-#
-# Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v. 2.0, which is available at
-# http://www.eclipse.org/legal/epl-2.0.
-#
-# This Source Code may also be made available under the following Secondary
-# Licenses when the conditions for such availability set forth in the
-# Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
-# version 2 with the GNU Classpath Exception, which is available at
-# https://www.gnu.org/software/classpath/license.html.
-#
-# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
-#
-
-pc.commit_failure="commit failed for policy context [{0}] caught {1}.
-pc.excluded_grant_context_ignored=Codebase, SignedBy, or Principals ignored in excluded rules [{0}]
-pc.file_close_error=Unable to close policy file [{0}] caught {1}.
-pc.file_delete_error=Unable to delete policy file [{0}].
-pc.file_error=Unable to create policy file [{0}] caught {1}.
-pc.file_not_found=Unable to find policy file [{0}].
-pc.file_read_error=Error reading policy file [{0}] caught {1}.
-pc.file_to_url=unable to convert Policy file to URL - filename: [{0}] caught {1}.
-pc.file_write_error=Error writing to policy file [{0}] caught {1}.
-pc.file_refreshed=Policy refresh timestamp calculation included policy file [{0}].
-pc.file_not_refreshed=Policy refresh timestamp calculation did not include policy file [{0}].
-pc.granted_imply_exclude=One or more granted permissions imply the following excluded permissions: {0}.
-pc.invalid_link_target=linked policy configuration unknown to factory - ContextId [{0}].
-pc.invalid_op_for_state_delete=Cannot perform operation on deleted PolicyConfiguration.
-pc.op_requires_state_open=Operation invoked on closed or deleted PolicyConfiguration.
-pc.invalue_policy_file_name=invalid policy filename: [{0}].
-pc.linked_with_different_role_maps=Linked policy contexts have different roleToSubjectMaps [{0}] [{1}].
-pc.no_principals_mapped_to_role=No Principals mapped to Role [{0}].
-pc.no_repository=The repository for the default JACC policy provider is not set in domain.xml. Unable to initialize policy provider.
-pc.non_principal_mapped_to_role=The non-principal object [{0}] was mapped to the role [{1}].
-pc.permission_load_error=Exception occurred while loading Permission of type [{0}] exception was {1}
-pc.role_map_not_defined_at_commit=Principal to Role mappings not defined before commit [{0}].
-pc.unable_to_create_context_directory=Unable to directory for policy context: [{0}]
-pc.unable_to_create_repostory=Unable to create policy file repository, because there is an existing (non-directory) file [{0}].
-pc.unable_to_init_repostory=Unable to initialize policy file repository. caught {0}
-pc.unable_to_read_repository=Unable to read policy file repository in {0}.
-pc.unknown_policy_context=Unknown policy context - [{0}].
-pc.unsupported_link_operation=Cannot link PolicyConfiguration to itself.
-pc.unable_to_read_repostory=unable to read repository for context - [{0}]
-
-
diff --git a/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/provider/PolicyConfigurationFactoryImpl.java b/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/provider/PolicyConfigurationFactoryImpl.java
deleted file mode 100644
index 4ccd0d1..0000000
--- a/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/provider/PolicyConfigurationFactoryImpl.java
+++ /dev/null
@@ -1,373 +0,0 @@
-/*
- * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0, which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the
- * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
- * version 2 with the GNU Classpath Exception, which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- */
-
-package com.sun.enterprise.security.provider;
-
-import com.sun.enterprise.util.LocalStringManagerImpl;
-import jakarta.security.jacc.*;
-
-import java.io.IOException;
-import java.util.logging.*;
-import com.sun.logging.LogDomains;
-
-import java.util.*;
-import java.io.File;
-
-import java.io.FileFilter;
-import java.security.Permission;
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReadWriteLock;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
-
-import org.jvnet.hk2.annotations.Service;
-import org.jvnet.hk2.annotations.ContractsProvided;
-
-/**
- * Implementation of jacc PolicyConfigurationFactory class
- * @author Harpreet Singh
- * @author Ron Monzillo
- * @version
- */
-@Service
-@ContractsProvided({PolicyConfigurationFactoryImpl.class, PolicyConfigurationFactory.class})
-public class PolicyConfigurationFactoryImpl extends PolicyConfigurationFactory {
-
- private static LocalStringManagerImpl localStrings =
- new LocalStringManagerImpl(PolicyConfigurationFactoryImpl.class);
- // Table of ContextId->PolicyConfiguration
- private Map polConfTable = new HashMap();
-
- //brought from PolicyConfigurationImpl
- // used to represent configuration linkages
- private /*TODO: static */ HashMap linkTable = new HashMap();
-
- private static Logger logger =
- Logger.getLogger(LogDomains.SECURITY_LOGGER);
-
- private ReadWriteLock rwLock = new ReentrantReadWriteLock(true);
- private Lock rLock = rwLock.readLock();
- private Lock wLock = rwLock.writeLock();
- private String repository = null;
-
- private static PolicyConfigurationFactoryImpl singleton = null;
-
- // set in PolicyLoader from domain.xml
- private static final String REPOSITORY_HOME_PROP =
- "com.sun.enterprise.jaccprovider.property.repository";
-
- public PolicyConfigurationFactoryImpl(){
- repository = initializeRepository();
- setInstance(this);
- }
-
- private static void setInstance(PolicyConfigurationFactoryImpl impl) {
- singleton = impl;
- }
-
- /**
- * This method is used to obtain an instance of the provider specific
- * class that implements the PolicyConfiguration interface that
- * corresponds to the identified policy context within the provider.
- * The methods of the PolicyConfiguration interface are used to
- * define the policy statements of the identified policy context.
- * <P>
- * If at the time of the call, the identified policy context does not
- * exist in the provider, then the policy context will be created
- * in the provider and the Object that implements the context's
- * PolicyConfiguration Interface will be returned. If the state of the
- * identified context is "deleted" or "inService" it will be transitioned to
- * the "open" state as a result of the call. The states in the lifecycle
- * of a policy context are defined by the PolicyConfiguration interface.
- * <P>
- * For a given value of policy context identifier, this method
- * must always return the same instance of PolicyConfiguration
- * and there must be at most one actual instance of a
- * PolicyConfiguration with a given policy context identifier
- * (during a process context).
- * <P>
- * To preserve the invariant that there be at most one
- * PolicyConfiguration object for a given policy context,
- * it may be necessary for this method to be thread safe.
- * <P>
- * @param contextID A String identifying the policy context whose
- * PolicyConfiguration interface is to be returned. The value passed to
- * this parameter must not be null.
- * <P>
- * @param remove A boolean value that establishes whether or not the
- * policy statements of an existing policy context are to be
- * removed before its PolicyConfiguration object is returned. If the value
- * passed to this parameter is true, the policy statements of
- * an existing policy context will be removed. If the value is false,
- * they will not be removed.
- *
- * @return an Object that implements the PolicyConfiguration
- * Interface matched to the Policy provider and corresponding to the
- * identified policy context.
- *
- * @throws java.lang.SecurityException
- * when called by an AccessControlContext that has not been
- * granted the "setPolicy" SecurityPermission.
- *
- * @throws jakarta.security.jacc.PolicyContextException
- * if the implementation throws a checked exception that has not been
- * accounted for by the getPolicyConfiguration method signature.
- * The exception thrown
- * by the implementation class will be encapsulated (during construction)
- * in the thrown PolicyContextException.
- */
- public PolicyConfiguration getPolicyConfiguration(String contextId, boolean remove)
- throws PolicyContextException {
-
- checkSetPolicyPermission();
- if(logger.isLoggable(Level.FINE)){
- logger.fine("JACC Policy Provider: Getting PolicyConfiguration object with id = "+ contextId);
- }
- PolicyConfigurationImpl pci = getPolicyConfigImpl(contextId);
-
- // if the pc is not in the table, see if it was copied into the
- // filesystem (e.g. by the DAS)
- if (pci == null){
- pci = getPolicyConfigurationImplFromDirectory(contextId,true,remove);
- if (pci == null) {
- pci = new PolicyConfigurationImpl(contextId, this);
- putPolicyConfigurationImpl(contextId,pci);
- }
- } else {
- // return the policy configuration to the open state, value of
- // remove will determine if statements are removed
- pci.initialize(true,remove,false);
- //according to JACC spec we should not remove
- // if (remove) {
- // this.removePolicyConfigurationImpl(contextId);
- // }
- }
- return pci;
- }
-
- /**
- * This method determines if the identified policy context
- * exists with state "inService" in the Policy provider
- * associated with the factory.
- * <P>
- * @param contextID A string identifying a policy context
- *
- * @return true if the identified policy context exists within the
- * provider and its state is "inService", false otherwise.
- *
- * @throws java.lang.SecurityException
- * when called by an AccessControlContext that has not been
- * granted the "setPolicy" SecurityPermission.
- *
- * @throws jakarta.security.jacc.PolicyContextException
- * if the implementation throws a checked exception that has not been
- * accounted for by the inService method signature. The exception thrown
- * by the implementation class will be encapsulated (during construction)
- * in the thrown PolicyContextException.
- */
- public boolean inService(String contextID) throws PolicyContextException{
- checkSetPolicyPermission();
- PolicyConfiguration pc = getPolicyConfigImpl(contextID);
-
- // if the pc is not in the table, see if it was copied into the
- // filesystem (e.g. by the DAS)
- if (pc == null) {
- pc = getPolicyConfigurationImplFromDirectory(contextID,false,false);
- }
- return pc == null ? false : pc.inService();
- }
-
- // finds pc copied into the filesystem (by DAS) after the repository was
- // initialized. Will only open pc if remove is true (otherwise pc will
- // remain in service);
-
- private PolicyConfigurationImpl
- getPolicyConfigurationImplFromDirectory(String contextId, boolean open, boolean remove) {
- PolicyConfigurationImpl pci = null;
- File f = new File(getContextDirectoryName(contextId));
- if (f.exists()) {
- pci = new PolicyConfigurationImpl(f, open, remove, this);
- if (pci != null) {
- putPolicyConfigurationImpl(contextId, pci);
- }
-
- }
- return pci;
- }
-
- String getContextDirectoryName(String contextId) {
- if (repository == null) {
- throw new RuntimeException("JACC Policy provider: repository not initialized");
- }
- return repository+File.separator+contextId;
- }
-
- // The following package protected methods are needed to support the
- // PolicyCongigurationImpl class.
-
- protected PolicyConfigurationImpl[] getPolicyConfigurationImpls() {
-
- PolicyConfigurationImpl[] rvalue = null;
- rLock.lock();
- try {
- Collection c = polConfTable.values();
- if (c != null) {
- rvalue = (PolicyConfigurationImpl[])
- c.toArray( new PolicyConfigurationImpl[c.size()] );
- }
- } finally {
- rLock.unlock();
- }
- return rvalue;
- }
-
- protected PolicyConfigurationImpl
- putPolicyConfigurationImpl(String contextID, PolicyConfigurationImpl pci) {
- wLock.lock();
- try {
- return (PolicyConfigurationImpl) polConfTable.put(contextID,pci);
- } finally {
- wLock.unlock();
- }
- }
-
- private PolicyConfigurationImpl
- getPolicyConfigImpl(String contextId) {
- rLock.lock();
- try {
- return (PolicyConfigurationImpl) polConfTable.get(contextId);
- } finally {
- rLock.unlock();
- }
- }
-
- protected PolicyConfigurationImpl
- removePolicyConfigurationImpl(String contextID) {
- wLock.lock();
- try {
- return (PolicyConfigurationImpl) polConfTable.remove(contextID);
- } finally {
- wLock.unlock();
- }
- }
-
- // does not reopen PC
- protected PolicyConfigurationImpl getPolicyConfigurationImpl(String contextId) {
- PolicyConfigurationImpl pci = getPolicyConfigImpl(contextId);
- if (pci == null) {
- // check if pc was copied into the filesystem after the repository
- // was initialized (do not open pc or remove policy statements).
- pci = getPolicyConfigurationImplFromDirectory(contextId,false,false);
- if (pci == null) {
- logger.log(Level.WARNING,"pc.unknown_policy_context",
- new Object[]{contextId});
- }
- }
- return pci;
- }
-
- private Permission setPolicyPermission = null;
- protected void checkSetPolicyPermission() {
- SecurityManager sm = System.getSecurityManager();
- if (sm != null) {
- if (setPolicyPermission == null) {
- setPolicyPermission = new java.security.SecurityPermission("setPolicy");
- }
- sm.checkPermission(setPolicyPermission);
- }
- }
-
- HashMap getLinkTable() {
- return this.linkTable;
- }
-
- String getRepository() {
- return repository;
- }
-
- /**
- * Read the repository directory name, create the directory, and
- * save the name in 'repository'
- */
- private String initializeRepository() {
-
- try {
- //TODO: remove the use of system property here
- repository = System.getProperty(REPOSITORY_HOME_PROP);
- if (repository == null) {
- String msg=localStrings.getLocalString("pc.no_repository","no repository");
- logger.log(Level.SEVERE,msg);
- } else {
-
- if (logger.isLoggable(Level.FINE)) {
- logger.fine("JACC policy provider: repository set to: "+repository);
- }
-
- File rf = new File(repository);
- if (rf.exists()) {
- if(!rf.isDirectory()) {
- String msg=localStrings.getLocalString("pc.unable_to_create_repository",
- "unable to create repository"+repository,new Object []{repository});
- logger.log(Level.SEVERE,msg);
- } else {
- // read deployed policy contextes
- File[] appsInService = rf.listFiles();
- if (appsInService != null) {
- for (int i = 0; i <appsInService.length; i++) {
- File[] contextsInService =
- appsInService[i].listFiles(new FileFilter() {
- public boolean accept(File pathname) {
- return pathname.isDirectory();
- }
- });
- if (contextsInService != null) {
- for (int j = 0; j < contextsInService.length; j++) {
- try {
- PolicyConfigurationImpl pc = new PolicyConfigurationImpl(contextsInService[j],false,false, this);
- putPolicyConfigurationImpl(pc.CONTEXT_ID,pc);
-
- } catch(Exception ex) {
- String msg=localStrings.getLocalString("pc.unable_to_read_repostory",
- "unable to read repository" ,new Object []{contextsInService[i].toString()});
- logger.log(Level.WARNING,msg, ex);
- }
- }
- }
- }
- }
- }
- } else {
- if(logger.isLoggable(Level.FINE)){
- logger.fine("JACC Policy Provider: creating new policy repository");
- }
- if(!rf.mkdirs()) {
- throw new IOException();
- }
- }
- }
- } catch (Exception e) {
- String msg=localStrings.getLocalString("pc.unable_to_init_repository",
- "unable to init repository",new Object []{e});
- logger.log(Level.SEVERE,msg);
- repository = null;
- }
-
- return repository;
- }
-
- static PolicyConfigurationFactoryImpl getInstance() {
- return singleton;
- }
-}
diff --git a/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/provider/PolicyConfigurationImpl.java b/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/provider/PolicyConfigurationImpl.java
deleted file mode 100644
index f7df524..0000000
--- a/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/provider/PolicyConfigurationImpl.java
+++ /dev/null
@@ -1,1489 +0,0 @@
-/*
- * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0, which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the
- * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
- * version 2 with the GNU Classpath Exception, which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- */
-
-package com.sun.enterprise.security.provider;
-
-import jakarta.security.jacc.*;
-
-import java.io.*;
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
-
-import java.util.Map;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-import java.lang.reflect.Constructor;
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.security.*;
-import javax.security.auth.Subject;
-
-import java.util.logging.*;
-import com.sun.logging.LogDomains;
-import com.sun.xml.txw2.IllegalSignatureException;
-import com.sun.enterprise.util.LocalStringManagerImpl;
-
-import com.sun.enterprise.security.SecurityRoleMapperFactoryGen;
-import com.sun.enterprise.security.provider.PolicyParser.GrantEntry;
-import com.sun.enterprise.security.provider.PolicyParser.ParsingException;
-import com.sun.enterprise.security.provider.PolicyParser.PermissionEntry;
-import com.sun.enterprise.security.provider.PolicyParser.PrincipalEntry;
-import org.glassfish.deployment.common.SecurityRoleMapper;
-import org.glassfish.deployment.common.SecurityRoleMapperFactory;
-
-/**
- * Implementation of Jacc PolicyConfiguration Interface
- * @author Harpreet Singh (harpreet.singh@sun.com)
- * @author Ron Monzillo
- */
-public class PolicyConfigurationImpl implements PolicyConfiguration {
-
- private static Logger logger =
- Logger.getLogger(LogDomains.SECURITY_LOGGER);
-
- private static LocalStringManagerImpl localStrings =
- new LocalStringManagerImpl(PolicyConfigurationImpl.class);
-
- //package access
- String CONTEXT_ID = null;
-
- // Excluded permissions
- private Permissions excludedPermissions = null;
- // Unchecked permissions
- private Permissions uncheckedPermissions = null;
- // permissions mapped to roles.
- private HashMap rolePermissionsTable = null;
-
- //private /*TODO: static */ SecurityRoleMapperFactory factory = SecurityRoleMapperFactoryGen.getSecurityRoleMapperFactory();
-
- private static String policySuffix = ".policy";
-
- private static String PROVIDER_URL = "policy.url.";
-
- private static final Class[] permissionParams = { String.class, String.class};
-
- // These are the 3 possible states that this object can be in.
- public static final int OPEN_STATE = 0;
- public static final int INSERVICE_STATE = 2;
- public static final int DELETED_STATE = 3;
-
- // new instances are created in the open state.
- protected int state = OPEN_STATE;
-
- private ReentrantReadWriteLock rwLock = new ReentrantReadWriteLock(true);
- private Lock rLock = rwLock.readLock();
- private Lock wLock = rwLock.writeLock();
-
- // this bit is used to optimize commit processing
- private boolean writeOnCommit = true;
-
- // this bit is used to optimize refresh processing
- private boolean wasRefreshed = false;
-
- private Policy policy = null;
- private String policyUrlValue = null;
-
- // policy file mod times
- private long[] lastModTimes = new long[2];
- private final Object refreshLock = new Object();
- private String repository = null;
- private Permission setPolicyPermission = null;
- private PolicyConfigurationFactoryImpl fact=null;
-
- protected PolicyConfigurationImpl(String contextId, PolicyConfigurationFactoryImpl fact){
- CONTEXT_ID = contextId;
- this.fact = fact;
- repository = fact.getRepository();
- // initialize(open,remove,!fromFile)
-// initializeRepository();
- initialize(true,true,false);
- }
-
- /**
- * @param applicationPolicyDirectory, need to have absolute path
- * @param open, then mark state as open
- * @param remove, then remove any existing policy statements
- */
- protected PolicyConfigurationImpl
- (File applicationPolicyDirectory, boolean open, boolean remove, PolicyConfigurationFactoryImpl fact) {
-
- this.fact = fact;
- CONTEXT_ID = applicationPolicyDirectory.getParentFile().getName() +
- '/' + applicationPolicyDirectory.getName();
-
- repository = fact.getRepository();
- //initializeRepository();
- String name = getPolicyFileName(true);
- File f = new File(name);
- if (!f.exists()) {
- String defMsg="Unable to open Policy file: "+name;
- String msg= localStrings.getLocalString("pc.file_not_found",defMsg,new Object []{ name});
- logger.log(Level.SEVERE,msg);
- throw new RuntimeException(defMsg);
- }
-
- // initialize(open,remove,fromFile)
- initialize(open,remove,true);
- }
-
- /**
- * This method returns this object's policy context identifier.
- * @return this object's policy context identifier.
- *
- * @throws java.lang.SecurityException
- * if called by an AccessControlContext that has not been
- * granted the "setPolicy" SecurityPermission.
- *
- * @throws jakarta.security.jacc.PolicyContextException
- * if the implementation throws a checked exception that has not been
- * accounted for by the getContextID method signature. The exception thrown
- * by the implementation class will be encapsulated (during construction)
- * in the thrown PolicyContextException.
- */
- public String getContextID() throws PolicyContextException {
- checkSetPolicyPermission();
- return this.CONTEXT_ID;
- }
-
- /**
- * Used to add permissions to a named role in this PolicyConfiguration.
- * If the named Role does not exist in the PolicyConfiguration, it is
- * created as a result of the call to this function.
- * <P>
- * It is the job of the Policy provider to ensure that all the permissions
- * added to a role are granted to principals "mapped to the role".
- * <P>
- * @param roleName the name of the Role to which the permissions are
- * to be added.
- * <P>
- * @param permissions the collection of permissions to be added
- * to the role. The collection may be either a homogenous or
- * heterogenous collection.
- *
- * @throws java.lang.SecurityException
- * if called by an AccessControlContext that has not been
- * granted the "setPolicy" SecurityPermission.
- *
- * @throws java.lang.UnsupportedOperationException
- * if the state of the policy context whose interface is this
- * PolicyConfiguration Object is "deleted" or "inService" when this
- * method is called.
- *
- * @throws jakarta.security.jacc.PolicyContextException
- * if the implementation throws a checked exception that has not been
- * accounted for by the addToRole method signature. The exception thrown
- * by the implementation class will be encapsulated (during construction)
- * in the thrown PolicyContextException.
- */
- public void addToRole(String roleName, PermissionCollection permissions)
- throws PolicyContextException
- {
- assertStateIsOpen();
-
- if (roleName != null && permissions != null) {
- checkSetPolicyPermission();
- for(Enumeration e = permissions.elements(); e.hasMoreElements();) {
- this.getRolePermissions(roleName).add((Permission)e.nextElement());
- writeOnCommit = true;
- }
- }
- }
-
- /**
- * Used to add a single permission to a named role in this
- * PolicyConfiguration.
- * If the named Role does not exist in the PolicyConfiguration, it is
- * created as a result of the call to this function.
- * <P>
- * It is the job of the Policy provider to ensure that all the permissions
- * added to a role are granted to principals "mapped to the role".
- * <P>
- * @param roleName the name of the Role to which the permission is
- * to be added.
- * <P>
- * @param permission the permission to be added
- * to the role.
- *
- * @throws java.lang.SecurityException
- * if called by an AccessControlContext that has not been
- * granted the "setPolicy" SecurityPermission.
- *
- * @throws java.lang.UnsupportedOperationException
- * if the state of the policy context whose interface is this
- * PolicyConfiguration Object is "deleted" or "inService" when this
- * method is called.
- *
- * @throws jakarta.security.jacc.PolicyContextException
- * if the implementation throws a checked exception that has not been
- * accounted for by the addToRole method signature. The exception thrown
- * by the implementation class will be encapsulated (during construction)
- * in the thrown PolicyContextException.
- */
- public void addToRole(String roleName, Permission permission)
- throws PolicyContextException {
-
- assertStateIsOpen();
-
- if (roleName != null && permission != null) {
- checkSetPolicyPermission();
- this.getRolePermissions(roleName).add(permission);
- writeOnCommit = true;
- }
- }
-
- /**
- * Used to add unchecked policy statements to this PolicyConfiguration.
- * <P>
- * @param permissions the collection of permissions to be added
- * as unchecked policy statements. The collection may be either
- * a homogenous or heterogenous collection.
- *
- * @throws java.lang.SecurityException
- * if called by an AccessControlContext that has not been
- * granted the "setPolicy" SecurityPermission.
- *
- * @throws java.lang.UnsupportedOperationException
- * if the state of the policy context whose interface is this
- * PolicyConfiguration Object is "deleted" or "inService" when this
- * method is called.
- *
- * @throws jakarta.security.jacc.PolicyContextException
- * if the implementation throws a checked exception that has not been
- * accounted for by the addToUncheckedPolicy method signature.
- * The exception thrown
- * by the implementation class will be encapsulated (during construction)
- * in the thrown PolicyContextException.
- */
- public void addToUncheckedPolicy(PermissionCollection permissions)
- throws PolicyContextException {
-
- assertStateIsOpen();
-
- if (permissions != null) {
- checkSetPolicyPermission();
- for(Enumeration e = permissions.elements(); e.hasMoreElements();){
- this.getUncheckedPermissions().add((Permission) e.nextElement());
- writeOnCommit = true;
- }
- }
- }
-
- /**
- * Used to add a single unchecked policy statement to this
- * PolicyConfiguration.
- * <P>
- * @param permission the permission to be added
- * to the unchecked policy statements.
- *
- * @throws java.lang.SecurityException
- * if called by an AccessControlContext that has not been
- * granted the "setPolicy" SecurityPermission.
- *
- * @throws java.lang.UnsupportedOperationException
- * if the state of the policy context whose interface is this
- * PolicyConfiguration Object is "deleted" or "inService" when this
- * method is called.
- *
- * @throws jakarta.security.jacc.PolicyContextException
- * if the implementation throws a checked exception that has not been
- * accounted for by the addToUncheckedPolicy method signature.
- * The exception thrown
- * by the implementation class will be encapsulated (during construction)
- * in the thrown PolicyContextException.
- */
- public void addToUncheckedPolicy(Permission permission)
- throws PolicyContextException{
-
- assertStateIsOpen();
-
-
- if (permission != null) {
- checkSetPolicyPermission();
- this.getUncheckedPermissions().add(permission);
- writeOnCommit = true;
- }
- }
-
- /**
- * Used to add excluded policy statements to this PolicyConfiguration.
- * <P>
- * @param permissions the collection of permissions to be added
- * to the excluded policy statements. The collection may be either
- * a homogenous or heterogenous collection.
- *
- * @throws java.lang.SecurityException
- * if called by an AccessControlContext that has not been
- * granted the "setPolicy" SecurityPermission.
- *
- * @throws java.lang.UnsupportedOperationException
- * if the state of the policy context whose interface is this
- * PolicyConfiguration Object is "deleted" or "inService" when this
- * method is called.
- *
- * @throws jakarta.security.jacc.PolicyContextException
- * if the implementation throws a checked exception that has not been
- * accounted for by the addToExcludedPolicy method signature.
- * The exception thrown
- * by the implementation class will be encapsulated (during construction)
- * in the thrown PolicyContextException.
- */
- public void addToExcludedPolicy(PermissionCollection permissions)
- throws PolicyContextException {
-
- assertStateIsOpen();
-
- if (permissions != null) {
- checkSetPolicyPermission();
- for(Enumeration e = permissions.elements(); e.hasMoreElements();){
- this.getExcludedPermissions().add((Permission) e.nextElement());
- writeOnCommit = true;
- }
- }
- }
-
- /**
- * Used to add a single excluded policy statement to this
- * PolicyConfiguration.
- * <P>
- * @param permission the permission to be added
- * to the excluded policy statements.
- *
- * @throws java.lang.SecurityException
- * if called by an AccessControlContext that has not been
- * granted the "setPolicy" SecurityPermission. fa
- *
- * @throws java.lang.UnsupportedOperationException
- * if the state of the policy context whose interface is this
- * PolicyConfiguration Object is "deleted" or "inService" when this
- * method is called.
- *
- * @throws jakarta.security.jacc.PolicyContextException
- * if the implementation throws a checked exception that has not been
- * accounted for by the addToExcludedPolicy method signature.
- * The exception thrown
- * by the implementation class will be encapsulated (during construction)
- * in the thrown PolicyContextException.
- */
- public void addToExcludedPolicy(Permission permission)
- throws PolicyContextException{
-
- assertStateIsOpen();
-
-
- if (permission != null) {
- checkSetPolicyPermission();
- this.getExcludedPermissions().add(permission);
- writeOnCommit = true;
- }
- }
-
- /**
- * Used to remove a role and all its permissions from this
- * PolicyConfiguration.
- * <P>
- * @param roleName the name of the role to remove from this
- * PolicyConfiguration. If the value of the roleName parameter is "*"
- * and no role with name "*" exists in this PolicyConfiguration,
- * then all roles must be removed from this PolicyConfiguration.
- *
- * @throws java.lang.SecurityException
- * if called by an AccessControlContext that has not been
- * granted the "setPolicy" SecurityPermission.
- *
- * @throws java.lang.UnsupportedOperationException
- * if the state of the policy context whose interface is this
- * PolicyConfiguration Object is "deleted" or "inService" when this
- * method is called.
- *
- * @throws jakarta.security.jacc.PolicyContextException
- * if the implementation throws a checked exception that has not been
- * accounted for by the removeRole method signature. The exception thrown
- * by the implementation class will be encapsulated (during construction)
- * in the thrown PolicyContextException.
- */
- public void removeRole(String roleName)
- throws PolicyContextException{
-
- assertStateIsOpen();
-
- if(roleName != null && rolePermissionsTable != null) {
- checkSetPolicyPermission();
- if (rolePermissionsTable.remove(roleName) != null) {
- if (rolePermissionsTable.isEmpty()) {
- rolePermissionsTable = null;
- }
- writeOnCommit = true;
- } else if (roleName.equals("*")) {
- boolean wasEmpty = rolePermissionsTable.isEmpty();
- if (!wasEmpty) {
- rolePermissionsTable.clear();
- }
- rolePermissionsTable = null;
- if (!wasEmpty) {
- writeOnCommit = true;
- }
- }
- }
- }
-
- /**
- * Used to remove any unchecked policy statements from this
- * PolicyConfiguration.
- *
- * @throws java.lang.SecurityException
- * if called by an AccessControlContext that has not been
- * granted the "setPolicy" SecurityPermission.
- *
- * @throws java.lang.UnsupportedOperationException
- * if the state of the policy context whose interface is this
- * PolicyConfiguration Object is "deleted" or "inService" when this
- * method is called.
- *
- * @throws jakarta.security.jacc.PolicyContextException
- * if the implementation throws a checked exception that has not been
- * accounted for by the removeUncheckedPolicy method signature.
- * The exception thrown
- * by the implementation class will be encapsulated (during construction)
- * in the thrown PolicyContextException.
- */
- public void removeUncheckedPolicy()
- throws PolicyContextException{
-
- assertStateIsOpen();
-
- checkSetPolicyPermission();
-
- if (uncheckedPermissions != null) {
- uncheckedPermissions = null;
- writeOnCommit = true;
- }
- }
-
- /**
- * Used to remove any excluded policy statements from this
- * PolicyConfiguration.
- *
- * @throws java.lang.SecurityException
- * if called by an AccessControlContext that has not been
- * granted the "setPolicy" SecurityPermission.
- *
- * @throws java.lang.UnsupportedOperationException
- * if the state of the policy context whose interface is this
- * PolicyConfiguration Object is "deleted" or "inService" when this
- * method is called.
- *
- * @throws jakarta.security.jacc.PolicyContextException
- * if the implementation throws a checked exception that has not been
- * accounted for by the removeExcludedPolicy method signature.
- * The exception thrown
- * by the implementation class will be encapsulated (during construction)
- * in the thrown PolicyContextException.
- */
- public void removeExcludedPolicy()
- throws PolicyContextException{
-
- assertStateIsOpen();
-
- checkSetPolicyPermission();
-
- if (excludedPermissions != null) {
- excludedPermissions = null;
- writeOnCommit = true;
- }
- }
-
- /**
- * This method is used to set to "inService" the state of the policy context
- * whose interface is this PolicyConfiguration Object. Only those policy
- * contexts whose state is "inService" will be included in the policy
- * contexts processed by the Policy.refresh method. A policy context whose
- * state is "inService" may be returned to the "open" state by calling the
- * getPolicyConfiguration method of the PolicyConfiguration factory
- * with the policy context identifier of the policy context.
- * <P>
- * When the state of a policy context is "inService", calling any method
- * other than commit, delete, getContextID, or inService on its
- * PolicyConfiguration Object will cause an UnsupportedOperationException
- * to be thrown.
- *
- * @throws java.lang.SecurityException
- * if called by an AccessControlContext that has not been
- * granted the "setPolicy" SecurityPermission.
- *
- * @throws java.lang.UnsupportedOperationException
- * if the state of the policy context whose interface is this
- * PolicyConfiguration Object is "deleted" when this
- * method is called.
- *
- * @throws jakarta.security.jacc.PolicyContextException
- * if the implementation throws a checked exception that has not been
- * accounted for by the commit method signature. The exception thrown
- * by the implementation class will be encapsulated (during construction)
- * in the thrown PolicyContextException.
- */
- public void commit() throws PolicyContextException{
-
- synchronized(refreshLock) {
- if(stateIs(DELETED_STATE)){
- String defMsg="Cannot perform Operation on a deleted PolicyConfiguration";
- String msg=localStrings.getLocalString("pc.invalid_op_for_state_delete",defMsg);
- logger.log(Level.WARNING,msg);
- throw new UnsupportedOperationException(defMsg);
-
- } else {
-
- try {
-
- checkSetPolicyPermission();
-
- if (stateIs(OPEN_STATE)) {
-
- generatePermissions();
-
- setState(INSERVICE_STATE);
- }
- } catch(Exception e){
- String defMsg="commit fail for contextod "+CONTEXT_ID;
- String msg=localStrings.getLocalString("pc.commit_failure",defMsg,new Object[]{CONTEXT_ID,e});
- logger.log(Level.SEVERE,msg);
- throw new PolicyContextException(e);
- }
- if (logger.isLoggable(Level.FINE)){
- logger.fine("JACC Policy Provider: PC.commit "+CONTEXT_ID);
- }
- }
-
- }
- }
-
- /**
- * Creates a relationship between this configuration and another
- * such that they share the same principal-to-role mappings.
- * PolicyConfigurations are linked to apply a common principal-to-role
- * mapping to multiple seperately manageable PolicyConfigurations,
- * as is required when an application is composed of multiple
- * modules.
- * <P>
- * Note that the policy statements which comprise a role, or comprise
- * the excluded or unchecked policy collections in a PolicyConfiguration
- * are unaffected by the configuration being linked to another.
- * <P>
- * @param link a reference to a different PolicyConfiguration than this
- * PolicyConfiguration.
- * <P>
- * The relationship formed by this method is symetric, transitive
- * and idempotent. If the argument PolicyConfiguration does not have a
- * different Policy context identifier than this PolicyConfiguration
- * no relationship is formed, and an exception, as described below, is
- * thrown.
- *
- * @throws java.lang.SecurityException
- * if called by an AccessControlContext that has not been
- * granted the "setPolicy" SecurityPermission.
- *
- * @throws java.lang.UnsupportedOperationException
- * if the state of the policy context whose interface is this
- * PolicyConfiguration Object is "deleted" or "inService" when this
- * method is called.
- *
- * @throws java.lang.IllegalArgumentException
- * if called with an argument PolicyConfiguration whose Policy context
- * is equivalent to that of this PolicyConfiguration.
- *
- * @throws jakarta.security.jacc.PolicyContextException
- * if the implementation throws a checked exception that has not been
- * accounted for by the linkConfiguration method signature. The exception
- * thrown
- * by the implementation class will be encapsulated (during construction)
- * in the thrown PolicyContextException.
- */
- public void linkConfiguration(PolicyConfiguration link) throws PolicyContextException {
-
- assertStateIsOpen();
-
- String linkId = link.getContextID();
- if (this.CONTEXT_ID.equals(linkId)) {
- String defMsg="Operation attempted to link PolicyConfiguration to itself.";
- String msg=localStrings.getLocalString("pc.unsupported_link_operation",defMsg);
- logger.log(Level.WARNING,msg);
- throw new IllegalArgumentException(defMsg);
- }
-
- checkSetPolicyPermission();
-
- updateLinkTable(linkId);
-
- }
-
- /**
- * Causes all policy statements to be deleted from this PolicyConfiguration
- * and sets its internal state such that calling any method, other than
- * delete, getContextID, or inService on the PolicyConfiguration will
- * be rejected and cause an UnsupportedOperationException to be thrown.
- * <P>
- * This operation has no affect on any linked PolicyConfigurations
- * other than removing any links involving the deleted PolicyConfiguration.
- *
- * @throws java.lang.SecurityException
- * if called by an AccessControlContext that has not been
- * granted the "setPolicy" SecurityPermission.
- *
- * @throws jakarta.security.jacc.PolicyContextException
- * if the implementation throws a checked exception that has not been
- * accounted for by the delete method signature. The exception thrown
- * by the implementation class will be encapsulated (during construction)
- * in the thrown PolicyContextException.
- */
- public void delete() throws PolicyContextException
- {
- checkSetPolicyPermission();
- synchronized(refreshLock) {
- try {
- removePolicy();
- } finally {
- setState(DELETED_STATE);
- }
- }
- }
-
- /**
- * This method is used to determine if the policy context whose interface is
- * this PolicyConfiguration Object is in the "inService" state.
- *
- * @return true if the state of the associated policy context is
- * "inService"; false otherwise.
- *
- * @throws java.lang.SecurityException
- * if called by an AccessControlContext that has not been
- * granted the "setPolicy" SecurityPermission.
- *
- * @throws jakarta.security.jacc.PolicyContextException
- * if the implementation throws a checked exception that has not been
- * accounted for by the inService method signature. The exception thrown
- * by the implementation class will be encapsulated (during construction)
- * in the thrown PolicyContextException.
- */
- public boolean inService() throws PolicyContextException{
- checkSetPolicyPermission();
- boolean rvalue = stateIs(INSERVICE_STATE);
-
- if (logger.isLoggable(Level.FINE)) {
- logger.fine("JACC Policy Provider: inService: " +
- (rvalue ? "true " : "false ") +
- CONTEXT_ID);
- }
-
- return rvalue;
- }
-
- // The following methods are implementation specific
-
- protected void checkSetPolicyPermission() {
- SecurityManager sm = System.getSecurityManager();
- if (sm != null) {
- if (setPolicyPermission == null) {
- setPolicyPermission = new java.security.SecurityPermission("setPolicy");
- }
- sm.checkPermission(setPolicyPermission);
- }
- }
-
- // get the policy object
- protected java.security.Policy getPolicy(){
- if (stateIs(INSERVICE_STATE)) {
- return this.policy;
- }
- if (logger.isLoggable(Level.FINEST)) {
- logger.finest("JACC Policy Provider: getPolicy ("+CONTEXT_ID+") is NOT in service");
- }
- return null;
- }
-
- // get the policy object
- protected Permissions getExcludedPolicy(){
- return stateIs(INSERVICE_STATE) ? this.excludedPermissions : null;
- }
-
- // called by PolicyWrapper to refresh context specific policy object.
- protected void refresh(boolean force){
-
- synchronized(refreshLock){
- if (stateIs(INSERVICE_STATE) &&
- (wasRefreshed == false || force || filesChanged())) {
-
- // find open policy.url
- int i = 0;
- String value = null;
- String urlKey = null;
- while (true) {
- urlKey = PROVIDER_URL+(++i);
- value = getSecurityProperty(urlKey);
- if (value == null || value.equals("")) {
- break;
- }
- }
-
- try {
- setSecurityProperty(urlKey, policyUrlValue);
-
- if (fileChanged(false)) {
- excludedPermissions = loadExcludedPolicy();
- }
-
- // capture time before load, to ensure that we
- // have a time that precedes load
- captureFileTime(true);
-
- if (policy == null) {
- policy = getNewPolicy();
- } else {
- policy.refresh();
- if (logger.isLoggable(Level.FINE)){
- logger.fine("JACC Policy Provider: Called Policy.refresh on contextId: "+CONTEXT_ID+" policyUrlValue was "+policyUrlValue);
- }
- }
- wasRefreshed = true;
- } finally {
- // can't setProperty back to null, workaround is to
- // use empty string
- setSecurityProperty(urlKey, "");
- }
- }
- }
- }
-
- private java.security.Policy getNewPolicy() {
- Object wrapper = java.security.Policy.getPolicy();
- if (wrapper != null && wrapper instanceof BasePolicyWrapper) {
- return ((BasePolicyWrapper) wrapper).getNewPolicy();
- } else {
- try {
- return Policy.getInstance("JavaPolicy", null);
- } catch (NoSuchAlgorithmException e) {
- // TODO Auto-generated catch block
- throw new IllegalSignatureException(e);
- }
- }
- }
-
- private void captureFileTime(boolean granted) {
- String name = getPolicyFileName(granted);
- File f = new File(name);
- lastModTimes[(int) (granted ? 1 : 0)] = f.lastModified();
- }
-
- private boolean _fileChanged(boolean granted, File f) {
- return !(lastModTimes[(int) (granted ? 1 : 0)] == f.lastModified());
- }
-
- private boolean fileChanged(boolean granted) {
- String name = getPolicyFileName(granted);
- File f = new File(name);
- return _fileChanged(granted,f);
- }
-
- private boolean filesChanged() {
- return (fileChanged(true) || fileChanged(false));
- }
-
- /**
- * tests if policy file has arrived (via synchronization system).
- * if File exists, also checks last modified time, in case file was
- * not deleted on transition out of inservice state. Called when context
- * is not inService to determine if it was needs to be transitioned
- * because of file distribution.
- * @param granted selects granted or excluded policy file
- * @return true if new file has arrived.
- */
- private boolean fileArrived(boolean granted) {
- String name = getPolicyFileName(granted);
- File f = new File(name);
- boolean rvalue = ( f.exists() && _fileChanged(granted,f) );
-
- if (logger.isLoggable(Level.FINE)){
- logger.fine("JACC Policy Provider: file arrival check" +
- " type: " + (granted? "granted " : "excluded ") +
- " arrived: " + rvalue +
- " exists: " + f.exists() +
- " lastModified: " + f.lastModified() +
- " storedTime: " + lastModTimes[(int) (granted ? 1 : 0)] +
- " state: " + (this.state == OPEN_STATE ? "open " : "deleted ") +
- CONTEXT_ID);
- }
-
- return rvalue;
- }
-
- // initilaize the internal data structures.
- // if open, then mark state as open
- // if remove, then remove any existing policy statements
- // if fromFile (and not remove), then mark state as in service,
- // and not requiring write on commit
- // if fromFile (and remove), then remove and mark state as open
- protected void initialize(boolean open, boolean remove, boolean fromFile) {
- synchronized(refreshLock) {
- String name = getPolicyFileName(true);
- if (open || remove) {
- setState(OPEN_STATE);
- } else {
- setState(INSERVICE_STATE);
- }
- try {
- if (remove) {
- removePolicy();
- }
-
- policyUrlValue =
- fileToEncodedURL(new File(name));
- if (fromFile && !remove) {
- uncheckedPermissions = null;
- rolePermissionsTable = null;
- excludedPermissions = loadExcludedPolicy();
- initLinkTable();
- captureFileTime(true);
- writeOnCommit = false;
- }
- wasRefreshed = false;
- } catch (java.net.MalformedURLException mue) {
- String defMsg="Unable to convert Policy file Name to URL: "+name;
- String msg=localStrings.getLocalString("pc.file_to_url",defMsg, new Object[]{name,mue});
- logger.log(Level.SEVERE,msg);
- throw new RuntimeException(defMsg);
- }
- }
- }
-
- public static String fileToEncodedURL(File file) throws MalformedURLException {
- try {
- String filePath = new URI("file", file.getAbsolutePath(), null)
- .toASCIIString()
- .substring("file:".length());
-
- if (!filePath.startsWith("/")) {
- filePath = "/" + filePath;
- }
-
- if (file.isDirectory() && !filePath.endsWith("/")) {
- filePath = filePath + "/";
- }
-
- return new URL("file", "", filePath).toString();
- } catch (URISyntaxException e) {
- throw new IllegalStateException(e);
- }
- }
-
- private String getPolicyFileName(boolean granted) {
- return granted ?
- getContextDirectoryName()+File.separator+"granted"+policySuffix :
- getContextDirectoryName()+File.separator+"excluded"+policySuffix;
- }
-
- private String getContextDirectoryName() {
- if (repository == null) {
- throw new RuntimeException("JACC Policy provider: repository not initialized");
- }
- return fact.getContextDirectoryName(CONTEXT_ID);
- }
-
-
-
- // remove the directory used ot hold the context's policy files
- private void removePolicyContextDirectory(){
- String directoryName = getContextDirectoryName();
- File f = new File(directoryName);
- if(f.exists()){
-
- // WORKAROUND: due to existence of timestamp file in given directory
- // for SE/EE synchronization
- File[] files = f.listFiles();
- if (files != null && files.length > 0) {
- for (int i = 0; i < files.length; i++) {
- if(!files[i].delete()) {
- String msg = localStrings.getLocalString("pc.file_delete_error","Error while deleting policy file");
- logger.log(Level.SEVERE,msg);
- throw new RuntimeException(msg);
- }
- }
- }
- //WORKAROUND: End
-
- if (!f.delete()) {
- String defMsg = "Failure removing policy context directory: "+directoryName;
- String msg=localStrings.getLocalString("pc.file_delete_error", defMsg);
- logger.log(Level.SEVERE,msg);
- throw new RuntimeException(defMsg);
- } else if(logger.isLoggable(Level.FINE)){
- logger.fine("JACC Policy Provider: Policy context directory removed: "+directoryName);
- }
-
- File appDir = f.getParentFile();
- // WORKAROUND: due to existence of timestamp file in given directory
- // for SE/EE synchronization
- File[] fs = appDir.listFiles();
- if (fs != null && fs.length > 0) {
- boolean hasDir = false;
- for (int i = 0; i < fs.length; i++) {
- if (fs[i].isDirectory()) {
- hasDir = true;
- break;
- }
- }
- if (!hasDir) {
- for (int i = 0; i < fs.length; i++) {
- fs[i].delete();
- }
- }
- }
- //WORKAROUND: End
-
- File[] moduleDirs = appDir.listFiles();
- if (moduleDirs == null || moduleDirs.length == 0) {
- if (!appDir.delete()) {
- String defMsg = "Failure removing policy context directory: " + appDir;
- String msg = localStrings.getLocalString("pc.file_delete_error", defMsg);
- logger.log(Level.SEVERE,msg);
- throw new RuntimeException(defMsg);
- }
- }
- }
- }
-
- // remove the external (file) policy statements.
- private void removePolicyFile(boolean granted){
- String fileName = getPolicyFileName(granted);
- File f = new File(fileName);
- if(f.exists()){
- if (!f.delete()) {
- String defMsg = "Failure removing policy file: "+fileName;
- String msg=localStrings.getLocalString("pc.file_delete_error", defMsg,new Object []{ fileName} );
- logger.log(Level.SEVERE,msg);
- throw new RuntimeException(defMsg);
- } else if(logger.isLoggable(Level.FINE)){
- logger.fine("JACC Policy Provider: Policy file removed: "+fileName);
- }
- }
- }
-
- // remove the internal and external (file) policy statements.
- private void removePolicy(){
- excludedPermissions = null;
- uncheckedPermissions = null;
- rolePermissionsTable = null;
- removePolicyFile(true);
- removePolicyFile(false);
- removePolicyContextDirectory();
- initLinkTable();
- policy = null;
- writeOnCommit = true;
- }
-
- private void initLinkTable() {
-
- synchronized(refreshLock) {
- // get the linkSet corresponding to this context.
- Set linkSet = (Set) fact.getLinkTable().get(CONTEXT_ID);
- // remobe this context id from the linkSet (which may be shared
- // with other contexts), and unmap the linkSet form this context.
- if (linkSet != null) {
- linkSet.remove(CONTEXT_ID);
- fact.getLinkTable().remove(CONTEXT_ID);
- }
-
- // create a new linkSet with onlythis context id, and put it in the table.
- linkSet = new HashSet();
- linkSet.add(CONTEXT_ID);
- fact.getLinkTable().put(CONTEXT_ID,linkSet);
- }
- }
-
- private void updateLinkTable(String otherId) {
-
- synchronized(refreshLock) {
-
- // get the linkSet corresponding to this context
- Set linkSet = (Set) fact.getLinkTable().get(CONTEXT_ID);
- // get the linkSet corresponding to the context being linked to this
- Set otherLinkSet = (Set) fact.getLinkTable().get(otherId);
-
- if (otherLinkSet == null) {
- String defMsg="Linked policy configuration ("+otherId+") does not exist";
- //String msg = localStrings.getLocalString("pc.invalid_link_target",defMsg, new Object []{otherId});
- logger.log(Level.SEVERE,"pc.invalid_link_target",otherId);
- throw new RuntimeException(defMsg);
- } else {
- Iterator it = otherLinkSet.iterator();
- // for each context (id) linked to the context being linked to this
- while (it.hasNext()) {
- String id = (String) it.next();
- //add the id to this linkSet
- linkSet.add(id);
- //replace the linkset mapped to all the contexts being linked
- //to this context, with this linkset.
- fact.getLinkTable().put(id,linkSet);
- }
- }
- }
- }
-
- private void setState(int stateValue) {
- wLock.lock();
- try {
- this.state = stateValue;
- } finally {
- wLock.unlock();
- }
- }
-
-
- private boolean _stateIs(int stateValue) {
- rLock.lock();
- try {
- return (this.state == stateValue);
- } finally {
- rLock.unlock();
- }
- }
-
- /**
- * checks if PolicyContex is in agrument state.
- * Detects implicpit state changes resulting from
- * distribution of policy files by synchronization
- * system.
- * @param stateValue state the context is tested for
- * @return true if in state.
- */
- private boolean stateIs(int stateValue) {
- boolean inState = _stateIs(stateValue);
- if (stateValue == INSERVICE_STATE && !inState) {
- if (fileArrived(true) || fileArrived(false)) {
-
- if (logger.isLoggable(Level.FINE)){
- logger.fine("JACC Policy Provider: file arrived transition to inService: " +
- " state: " + (this.state == OPEN_STATE ? "open " : "deleted ") +
- CONTEXT_ID);
- }
-
- // initialize(!open,!remove,fromFile)
- initialize(false,false,true);
- }
- inState = _stateIs(INSERVICE_STATE);
- }
-
- return inState;
- }
-
-
- private void assertStateIsOpen() {
-
- if (!stateIs(OPEN_STATE)){
- String defMsg="Operation invoked on closed or deleted PolicyConfiguration.";
- String msg = localStrings.getLocalString("pc.op_requires_state_open",defMsg);
- logger.log(Level.WARNING, msg);
- throw new UnsupportedOperationException(defMsg);
- }
- }
-
-
-
- private Permissions getUncheckedPermissions() {
- if (uncheckedPermissions == null) {
- uncheckedPermissions = new Permissions();
- }
- return uncheckedPermissions;
- }
-
- private Permissions getExcludedPermissions() {
- if (excludedPermissions == null) {
- excludedPermissions = new Permissions();
- }
- return excludedPermissions;
- }
-
- private Permissions getRolePermissions(String roleName) {
- if (rolePermissionsTable == null) rolePermissionsTable = new HashMap();
- Permissions rolePermissions = (Permissions) rolePermissionsTable.get(roleName);
- if (rolePermissions == null) {
- rolePermissions = new Permissions();
- rolePermissionsTable.put(roleName,rolePermissions);
- }
- return rolePermissions;
- }
-
- // This method workarounds a bug in PolicyParser.write(...).
- private String escapeName(String name) {
- return (name != null && name.indexOf('"') > 0) ?
- name.replaceAll("\"", "\\\\\"") : name;
- }
-
- private void generatePermissions()
-
- throws java.io.FileNotFoundException, java.io.IOException {
-
- // optimization - return if the rules have not changed
-
- if (!writeOnCommit) return;
-
- // otherwise proceed to write policy file
-
- Map roleToSubjectMap = null;
- SecurityRoleMapperFactory factory=SecurityRoleMapperFactoryGen.getSecurityRoleMapperFactory();
- if (rolePermissionsTable != null) {
- // Make sure a role to subject map has been defined for the Policy Context
- if (factory != null) {
- // the rolemapper is stored against the
- // appname, for a web app get the appname for this contextid
- SecurityRoleMapper srm = factory.getRoleMapper(CONTEXT_ID);
- if (srm != null) {
- roleToSubjectMap = srm.getRoleToSubjectMapping();
- }
- if (roleToSubjectMap != null) {
- // make sure all liked PC's have the same roleToSubjectMap
- Set linkSet = (Set) fact.getLinkTable().get(CONTEXT_ID);
- if (linkSet != null) {
- Iterator it = linkSet.iterator();
- while (it.hasNext()) {
- String contextId = (String)it.next();
- if (!CONTEXT_ID.equals(contextId)) {
- SecurityRoleMapper otherSrm = factory.getRoleMapper(contextId);
- Map otherRoleToSubjectMap = null;
-
- if (otherSrm != null) {
- otherRoleToSubjectMap = otherSrm.getRoleToSubjectMapping();
- }
-
- if (otherRoleToSubjectMap != roleToSubjectMap) {
- String defMsg="Linked policy contexts have different roleToSubjectMaps ("+CONTEXT_ID+")<->("+contextId+")";
- String msg=localStrings.getLocalString("pc.linked_with_different_role_maps",defMsg,new Object []{CONTEXT_ID,contextId});
- logger.log(Level.SEVERE,msg);
- throw new RuntimeException(defMsg);
- }
- }
- }
- }
- }
- }
- }
-
- if (roleToSubjectMap == null && rolePermissionsTable != null) {
- String defMsg="This application has no role mapper factory defined";
- String msg=localStrings.getLocalString("pc.role_map_not_defined_at_commit",defMsg,new Object []{CONTEXT_ID});
- logger.log(Level.SEVERE,msg);
- throw new RuntimeException
- (localStrings.getLocalString
- ("enterprise.deployment.deployment.norolemapperfactorydefine",defMsg));
- }
-
- PolicyParser parser = new PolicyParser(false);
-
- // load unchecked grants in parser
- if (uncheckedPermissions != null) {
- Enumeration pEnum = uncheckedPermissions.elements();
- if (pEnum.hasMoreElements()) {
- GrantEntry grant = new GrantEntry();
- while (pEnum.hasMoreElements()) {
- Permission p = (Permission) pEnum.nextElement();
- PermissionEntry entry =
- new PermissionEntry(p.getClass().getName(),
- p.getName(),p.getActions());
- grant.add(entry);
- }
- parser.add(grant);
- }
- }
-
- // load role based grants in parser
- if (rolePermissionsTable != null) {
- Iterator roleIt = rolePermissionsTable.keySet().iterator();
- while (roleIt.hasNext()) {
- boolean withPrincipals = false;
- String roleName = (String) roleIt.next();
- Permissions rolePerms = getRolePermissions(roleName);
- Subject rolePrincipals = (Subject) roleToSubjectMap.get(roleName);
- if (rolePrincipals != null) {
- Iterator pit = rolePrincipals.getPrincipals().iterator();
- while (pit.hasNext()){
- Principal prin = (Principal) pit.next();
-
- if (prin != null) {
- withPrincipals = true;
- PrincipalEntry prinEntry =
- new PrincipalEntry(prin.getClass().getName(),
- escapeName(prin.getName()));
- GrantEntry grant = new GrantEntry();
- grant.principals.add(prinEntry);
- Enumeration pEnum = rolePerms.elements();
- while (pEnum.hasMoreElements()) {
- Permission perm = (Permission) pEnum.nextElement();
- PermissionEntry permEntry =
- new PermissionEntry(perm.getClass().getName(),
- perm.getName(),
- perm.getActions());
- grant.add(permEntry);
- }
- parser.add(grant);
- }
- else {
- String msg = localStrings.getLocalString("pc.non_principal_mapped_to_role",
- "non principal mapped to role "+roleName,new Object[]{prin,roleName});
- logger.log(Level.WARNING,msg);
- }
- }
- }
- /**
- * JACC MR8 add grant for the any authenticated user role '**'
- */
- if (!withPrincipals && ("**".equals(roleName))) {
- withPrincipals = true;
- PrincipalEntry prinEntry = new PrincipalEntry(
- PrincipalEntry.WILDCARD_CLASS,PrincipalEntry.WILDCARD_NAME);
- GrantEntry grant = new GrantEntry();
- grant.principals.add(prinEntry);
- Enumeration pEnum = rolePerms.elements();
- while (pEnum.hasMoreElements()) {
- Permission perm = (Permission) pEnum.nextElement();
- PermissionEntry permEntry =
- new PermissionEntry(perm.getClass().getName(),
- perm.getName(),
- perm.getActions());
- grant.add(permEntry);
- }
- parser.add(grant);
- if(logger.isLoggable (Level.FINE)){
- logger.fine("JACC Policy Provider: added role grant for any authenticated user");
- }
- }
- if (!withPrincipals) {
- String msg = localStrings.getLocalString("pc.no_principals_mapped_to_role",
- "no principals mapped to role "+roleName, new Object []{ roleName});
- logger.log(Level.WARNING,msg);
- }
- }
- }
-
- writeOnCommit = createPolicyFile(true,parser,writeOnCommit);
-
- // load excluded perms in excluded parser
- if (excludedPermissions != null) {
-
- PolicyParser excludedParser = new PolicyParser(false);
-
- Enumeration pEnum = excludedPermissions.elements();
- if (pEnum.hasMoreElements()) {
- GrantEntry grant = new GrantEntry();
- while (pEnum.hasMoreElements()) {
- Permission p = (Permission) pEnum.nextElement();
- PermissionEntry entry =
- new PermissionEntry(p.getClass().getName(),
- p.getName(),p.getActions());
- grant.add(entry);
- }
- excludedParser.add(grant);
- }
-
- writeOnCommit = createPolicyFile(false,excludedParser,writeOnCommit);
- }
-
- if (!writeOnCommit) wasRefreshed = false;
- }
-
- private void createPolicyContextDirectory() {
-
- String contextDirectoryName = getContextDirectoryName();
- File d = new File(contextDirectoryName);
-
- String defMsg = "unable to create policy context directory";
- String msg = localStrings.getLocalString("pc.unable_to_create_context_directory",
- defMsg, new Object[]{contextDirectoryName});
- if (d.exists()) {
- if (!d.isDirectory()) {
-
- logger.log(Level.SEVERE, msg);
- throw new RuntimeException(defMsg);
- }
- } else {
- if (!d.mkdirs()) {
- logger.log(Level.SEVERE, msg);
- throw new RuntimeException(defMsg);
- }
- }
- }
-
- // returns false if write succeeds. otherwise returns input woc (i.e. writeOnCommit)
- private boolean createPolicyFile
- (boolean granted, PolicyParser parser, boolean woc) throws java.io.IOException {
-
- boolean result = woc;
- createPolicyContextDirectory();
- removePolicyFile(granted);
- String name = getPolicyFileName(granted);
- OutputStreamWriter writer = null;
- try {
- if(logger.isLoggable (Level.FINE)){
- logger.fine("JACC Policy Provider: Writing grant statements to policy file: "+name);
- }
- writer = new OutputStreamWriter(new FileOutputStream(name), "UTF-8");
- parser.write(writer);
- result = false;
- } catch(java.io.FileNotFoundException fnfe) {
- String msg=localStrings.getLocalString("pc.file_error","file not found "+name,
- new Object []{name, fnfe});
- logger.log(Level.SEVERE,msg);
- throw fnfe;
- } catch(java.io.IOException ioe){
- String msg=localStrings.getLocalString("pc.file_write_error","file IO error on file "+name,
- new Object []{name,ioe});
- logger.log(Level.SEVERE,msg);
- throw ioe;
- } finally {
- if (writer != null) {
- try {
- writer.close();
- captureFileTime(granted);
- } catch (Exception e) {
- String defMsg="Unable to close Policy file: "+name;
- String msg=localStrings.getLocalString("pc.file_close_error",defMsg,new Object []{name,e});
- logger.log(Level.SEVERE,msg);
- throw new RuntimeException(defMsg);
- }
- }
- }
- return result;
- }
-
- private Permission loadPermission(String className,String name,String actions){
- Class clazz = null;
- Permission permission = null;
- try{
- clazz = Class.forName(className);
- Constructor c = clazz.getConstructor(permissionParams);
- permission = (Permission) c.newInstance(new Object[] { name, actions });
- } catch(Exception e){
- String defMsg="PolicyConfiguration error loading permission";
- String msg=localStrings.getLocalString("pc.permission_load_error",defMsg,
- new Object []{className, e});
- logger.log(Level.SEVERE,msg);
- throw new RuntimeException(defMsg,e);
- }
- return permission;
- }
-
- private Permissions loadExcludedPolicy() {
- Permissions result = null;
- String name = getPolicyFileName(false);
- FileReader reader = null;
- PolicyParser parser = new PolicyParser(false);
- try {
- captureFileTime(false);
- reader = new FileReader(name);
- parser.read(reader);
- } catch (java.io.FileNotFoundException fnf) {
- //Just means there is no excluded Policy file, which
- // is the typical case
- parser = null;
- } catch (java.io.IOException ioe) {
- String defMsg="Error reading Policy file: "+name;
- String msg=localStrings.getLocalString("pc.file_read_error",defMsg,
- new Object []{name, ioe});
- logger.log(Level.SEVERE,msg);
- throw new RuntimeException(defMsg);
- } catch ( ParsingException pe) {
- String defMsg="Unable to parse Policy file: "+name;
- String msg=localStrings.getLocalString("pc.policy_parsing_exception",defMsg,
- new Object []{name,pe});
- logger.log(Level.SEVERE,msg);
- throw new RuntimeException(defMsg);
- } finally {
- if (reader != null) {
- try {
- reader.close();
- } catch (Exception e) {
- String defMsg="Unable to close Policy file: "+name;
- String msg=localStrings.getLocalString("pc.file_close_error",defMsg,
- new Object []{name,e});
- logger.log(Level.SEVERE,msg);
- throw new RuntimeException(defMsg);
- }
- }
- }
-
- if (parser != null) {
- Enumeration grants = parser.grantElements();
- while (grants.hasMoreElements()) {
- GrantEntry grant = (GrantEntry) grants.nextElement();
- if (grant.codeBase != null || grant.signedBy != null ||
- grant.principals.size() != 0) {
- String msg=localStrings.getLocalString("pc.excluded_grant_context_ignored",
- "ignore excluded grant context", new Object []{grant});
- logger.log(Level.WARNING,msg);
- } else {
- Enumeration perms = grant.permissionEntries.elements();
- while (perms.hasMoreElements()) {
- PermissionEntry entry = (PermissionEntry) perms.nextElement();
- Permission p =
- loadPermission(entry.permission,entry.name,entry.action);
- if (result == null) {
- result = new Permissions();
- }
- result.add(p);
- }
- }
- }
- }
-
- return result;
- }
-
- private void setSecurityProperty(final String key, final String value) {
- if (System.getSecurityManager() == null) {
- java.security.Security.setProperty(key, value);
- } else {
- java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction() {
-
- public java.lang.Object run() {
- java.security.Security.setProperty(key, value);
- return null;
- }
- });
- }
- }
-
- private String getSecurityProperty(final String key) {
- if (System.getSecurityManager() == null) {
- return java.security.Security.getProperty(key);
- } else {
- return java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction<String>() {
-
- public String run() {
- return java.security.Security.getProperty(key);
-
- }
- });
- }
- }
-}
-
-
-
-
-
diff --git a/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/provider/PolicyParser.java b/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/provider/PolicyParser.java
deleted file mode 100644
index 7295479..0000000
--- a/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/provider/PolicyParser.java
+++ /dev/null
@@ -1,1225 +0,0 @@
-/*
- * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0, which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the
- * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
- * version 2 with the GNU Classpath Exception, which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- */
-
-package com.sun.enterprise.security.provider;
-
-import java.io.*;
-import java.util.Enumeration;
-import java.util.LinkedList;
-import java.util.ListIterator;
-import java.util.Vector;
-import java.util.StringTokenizer;
-import java.text.MessageFormat;
-import javax.security.auth.x500.X500Principal;
-
-import java.security.GeneralSecurityException;
-import sun.security.util.Debug;
-import sun.security.util.PropertyExpander;
-import sun.security.util.ResourcesMgr;
-
-/**
- * The policy for a Java runtime (specifying
- * which permissions are available for code from various principals)
- * is represented as a separate
- * persistent configuration. The configuration may be stored as a
- * flat ASCII file, as a serialized binary file of
- * the Policy class, or as a database. <p>
- *
- * <p>The Java runtime creates one global Policy object, which is used to
- * represent the static policy configuration file. It is consulted by
- * a ProtectionDomain when the protection domain initializes its set of
- * permissions. <p>
- *
- * <p>The Policy <code>init</code> method parses the policy
- * configuration file, and then
- * populates the Policy object. The Policy object is agnostic in that
- * it is not involved in making policy decisions. It is merely the
- * Java runtime representation of the persistent policy configuration
- * file. <p>
- *
- * <p>When a protection domain needs to initialize its set of
- * permissions, it executes code such as the following
- * to ask the global Policy object to populate a
- * Permissions object with the appropriate permissions:
- * <pre>
- * policy = Policy.getPolicy();
- * Permissions perms = policy.getPermissions(protectiondomain)
- * </pre>
- *
- * <p>The protection domain contains CodeSource
- * object, which encapsulates its codebase (URL) and public key attributes.
- * It also contains the principals associated with the domain.
- * The Policy object evaluates the global policy in light of who the
- * principal is and what the code source is and returns an appropriate
- * Permissions object.
- *
- * @version 1.28, 01/14/00
- * @author Roland Schemers
- * @author Ram Marti
- *
- * @since 1.2
- */
-
-public class PolicyParser {
-
- // needs to be public for PolicyTool
- public static final String REPLACE_NAME = "PolicyParser.REPLACE_NAME";
-
- private static final String EXTDIRS_PROPERTY = "java.ext.dirs";
- private static final String OLD_EXTDIRS_EXPANSION =
- "${" + EXTDIRS_PROPERTY + "}";
-
- // package-private: used by PolicyFile for static policy
- static final String EXTDIRS_EXPANSION = "${{" + EXTDIRS_PROPERTY + "}}";
-
-
- private Vector grantEntries;
-
- // Convenience variables for parsing
- private static final Debug debug = Debug.getInstance("parser",
- "\t[Policy Parser]");
- private StreamTokenizer st;
- private int lookahead;
- private boolean expandProp = false;
- private String keyStoreUrlString = null; // unexpanded
- private String keyStoreType = null;
- private String keyStoreProvider = null;
- private String storePassURL = null;
-
- private String expand(String value)
- throws PropertyExpander.ExpandException
- {
- return expand(value, false);
- }
-
- private String expand(String value, boolean encodeURL)
- throws PropertyExpander.ExpandException
- {
- if (!expandProp) {
- return value;
- } else {
- return PropertyExpander.expand(value, encodeURL);
- }
- }
-
- /**
- * Creates a PolicyParser object.
- */
-
- public PolicyParser() {
- grantEntries = new Vector();
- }
-
-
- public PolicyParser(boolean expandProp) {
- this();
- this.expandProp = expandProp;
- }
-
- /**
- * Reads a policy configuration into the Policy object using a
- * Reader object. <p>
- *
- * @param policy the policy Reader object.
- *
- * @exception ParsingException if the policy configuration contains
- * a syntax error.
- *
- * @exception IOException if an error occurs while reading the policy
- * configuration.
- */
-
- public void read(Reader policy)
- throws ParsingException, IOException
- {
- if (!(policy instanceof BufferedReader)) {
- policy = new BufferedReader(policy);
- }
-
- /**
- * Configure the stream tokenizer:
- * Recognize strings between "..."
- * Don't convert words to lowercase
- * Recognize both C-style and C++-style comments
- * Treat end-of-line as white space, not as a token
- */
- st = new StreamTokenizer(policy);
-
- st.resetSyntax();
- st.wordChars('a', 'z');
- st.wordChars('A', 'Z');
- st.wordChars('.', '.');
- st.wordChars('0', '9');
- st.wordChars('_', '_');
- st.wordChars('$', '$');
- st.wordChars(128 + 32, 255);
- st.whitespaceChars(0, ' ');
- st.commentChar('/');
- st.quoteChar('\'');
- st.quoteChar('"');
- st.lowerCaseMode(false);
- st.ordinaryChar('/');
- st.slashSlashComments(true);
- st.slashStarComments(true);
-
- /**
- * The main parsing loop. The loop is executed once
- * for each entry in the config file. The entries
- * are delimited by semicolons. Once we've read in
- * the information for an entry, go ahead and try to
- * add it to the policy vector.
- *
- */
-
- lookahead = st.nextToken();
- while (lookahead != StreamTokenizer.TT_EOF) {
- if (peek("grant")) {
- GrantEntry ge = parseGrantEntry();
- // could be null if we couldn't expand a property
- if (ge != null)
- add(ge);
- } else if (peek("keystore") && keyStoreUrlString==null) {
- // only one keystore entry per policy file, others will be
- // ignored
- parseKeyStoreEntry();
- } else if (peek("keystorePasswordURL") && storePassURL==null) {
- // only one keystore passwordURL per policy file, others will be
- // ignored
- parseStorePassURL();
- } else {
- // error?
- }
- match(";");
- }
-
- if (keyStoreUrlString == null && storePassURL != null) {
- throw new ParsingException(ResourcesMgr.getString
- ("keystorePasswordURL can not be specified without also " +
- "specifying keystore"));
- }
- }
-
- public void add(GrantEntry ge)
- {
- grantEntries.addElement(ge);
- }
-
- public void replace(GrantEntry origGe, GrantEntry newGe)
- {
- grantEntries.setElementAt(newGe, grantEntries.indexOf(origGe));
- }
-
- public boolean remove(GrantEntry ge)
- {
- return grantEntries.removeElement(ge);
- }
-
- /**
- * Returns the (possibly expanded) keystore location, or null if the
- * expansion fails.
- */
- public String getKeyStoreUrl() {
- try {
- if (keyStoreUrlString!=null && keyStoreUrlString.length()!=0) {
- return expand(keyStoreUrlString, true).replace
- (File.separatorChar, '/');
- }
- } catch (PropertyExpander.ExpandException peee) {
- if (debug != null) {
- debug.println(peee.toString());
- }
- return null;
- }
- return null;
- }
-
- public void setKeyStoreUrl(String url) {
- keyStoreUrlString = url;
- }
-
- public String getKeyStoreType() {
- return keyStoreType;
- }
-
- public void setKeyStoreType(String type) {
- keyStoreType = type;
- }
-
- public String getKeyStoreProvider() {
- return keyStoreProvider;
- }
-
- public void setKeyStoreProvider(String provider) {
- keyStoreProvider = provider;
- }
-
- public String getStorePassURL() {
- try {
- if (storePassURL!=null && storePassURL.length()!=0) {
- return expand(storePassURL, true).replace
- (File.separatorChar, '/');
- }
- } catch (PropertyExpander.ExpandException peee) {
- if (debug != null) {
- debug.println(peee.toString());
- }
- return null;
- }
- return null;
- }
-
- public void setStorePassURL(String storePassURL) {
- this.storePassURL = storePassURL;
- }
-
- /**
- * Enumerate all the entries in the global policy object.
- * This method is used by policy admin tools. The tools
- * should use the Enumeration methods on the returned object
- * to fetch the elements sequentially.
- */
- public Enumeration grantElements(){
- return grantEntries.elements();
- }
-
- /**
- * write out the policy
- */
-
- public void write(Writer policy)
- {
- PrintWriter out = new PrintWriter(new BufferedWriter(policy));
-
- Enumeration enum_ = grantElements();
-
- out.println("/* AUTOMATICALLY GENERATED ON "+
- (new java.util.Date()) + "*/");
- out.println("/* DO NOT EDIT */");
- out.println();
-
- // write the (unexpanded) keystore entry as the first entry of the
- // policy file
- if (keyStoreUrlString != null) {
- writeKeyStoreEntry(out);
- }
- if (storePassURL != null) {
- writeStorePassURL(out);
- }
-
- // write "grant" entries
- while (enum_.hasMoreElements()) {
- GrantEntry ge = (GrantEntry) enum_.nextElement();
- ge.write(out);
- out.println();
- }
- out.flush();
- }
-
- /**
- * parses a keystore entry
- */
- private void parseKeyStoreEntry() throws ParsingException, IOException {
- match("keystore");
- keyStoreUrlString = match("quoted string");
-
- // parse keystore type
- if (!peek(",")) {
- return; // default type
- }
- match(",");
-
- if (peek("\"")) {
- keyStoreType = match("quoted string");
- } else {
- throw new ParsingException(st.lineno(),
- ResourcesMgr.getString("expected keystore type"));
- }
-
- // parse keystore provider
- if (!peek(",")) {
- return; // provider optional
- }
- match(",");
-
- if (peek("\"")) {
- keyStoreProvider = match("quoted string");
- } else {
- throw new ParsingException(st.lineno(),
- ResourcesMgr.getString("expected keystore provider"));
- }
- }
-
- private void parseStorePassURL() throws ParsingException, IOException {
- match("keyStorePasswordURL");
- storePassURL = match("quoted string");
- }
-
- /**
- * writes the (unexpanded) keystore entry
- */
- private void writeKeyStoreEntry(PrintWriter out) {
- out.print("keystore \"");
- out.print(keyStoreUrlString);
- out.print('"');
- if (keyStoreType != null && keyStoreType.length() > 0)
- out.print(", \"" + keyStoreType + "\"");
- if (keyStoreProvider != null && keyStoreProvider.length() > 0)
- out.print(", \"" + keyStoreProvider + "\"");
- out.println(";");
- out.println();
- }
-
- private void writeStorePassURL(PrintWriter out) {
- out.print("keystorePasswordURL \"");
- out.print(storePassURL);
- out.print('"');
- out.println(";");
- out.println();
- }
-
- /**
- * parse a Grant entry
- */
- private GrantEntry parseGrantEntry()
- throws ParsingException, IOException
- {
- GrantEntry e = new GrantEntry();
- LinkedList principals = null;
- boolean ignoreEntry = false;
-
- match("grant");
-
- while(!peek("{")) {
-
- if (peekAndMatch("Codebase")) {
- if (e.codeBase != null)
- throw new ParsingException(
- st.lineno(),
- ResourcesMgr.getString
- ("multiple Codebase expressions"));
- e.codeBase = match("quoted string");
- peekAndMatch(",");
- } else if (peekAndMatch("SignedBy")) {
- if (e.signedBy != null)
- throw new ParsingException(
- st.lineno(),
- ResourcesMgr.getString(
- "multiple SignedBy expressions"));
- e.signedBy = match("quoted string");
-
- // verify syntax of the aliases
- StringTokenizer aliases = new StringTokenizer(e.signedBy,
- ",", true);
- int actr = 0;
- int cctr = 0;
- while (aliases.hasMoreTokens()) {
- String alias = aliases.nextToken().trim();
- if (alias.equals(","))
- cctr++;
- else if (alias.length() > 0)
- actr++;
- }
- if (actr <= cctr)
- throw new ParsingException(
- st.lineno(),
- ResourcesMgr.getString(
- "SignedBy has empty alias"));
-
- peekAndMatch(",");
- } else if (peekAndMatch("Principal")) {
- if (principals == null) {
- principals = new LinkedList();
- }
-
- String principalClass;
- String principalName;
-
- if (peek("\"")) {
- // both the principalClass and principalName
- // will be replaced later
- principalClass = REPLACE_NAME;
- principalName = match("principal type");
- } else {
- // check for principalClass wildcard
- if (peek("*")) {
- match("*");
- principalClass = PrincipalEntry.WILDCARD_CLASS;
- } else {
- principalClass = match("principal type");
- }
-
- // check for principalName wildcard
- if (peek("*")) {
- match("*");
- principalName = PrincipalEntry.WILDCARD_NAME;
- } else {
- principalName = match("quoted string");
- }
-
- // disallow WILDCARD_CLASS && actual name
- if (principalClass.equals(PrincipalEntry.WILDCARD_CLASS) &&
- !principalName.equals(PrincipalEntry.WILDCARD_NAME)) {
- if (debug != null) {
- debug.println("disallowing principal that " +
- "has WILDCARD class but no WILDCARD name");
- }
- throw new ParsingException
- (st.lineno(),
- ResourcesMgr.getString
- ("can not specify Principal with a " +
- "wildcard class without a wildcard name"));
- }
- }
-
- try {
- principalName = expand(principalName);
-
- if (principalClass.equals
- ("javax.security.auth.x500.X500Principal") &&
- !principalName.equals(PrincipalEntry.WILDCARD_NAME)) {
-
- // 4702543: X500 names with an EmailAddress
- // were encoded incorrectly. construct a new
- // X500Principal with correct encoding.
-
- X500Principal p = new X500Principal
- ((new X500Principal(principalName)).toString());
- principalName = p.getName();
- }
-
- principals.add
- (new PrincipalEntry(principalClass, principalName));
- } catch (PropertyExpander.ExpandException peee) {
- // ignore the entire policy entry
- // but continue parsing all the info
- // so we can get to the next entry
- if (debug != null) {
- debug.println("principal name expansion failed: " +
- principalName);
- }
- ignoreEntry = true;
- }
- peekAndMatch(",");
-
- } else {
- throw new ParsingException(st.lineno(),
- ResourcesMgr.getString(
- "expected codeBase or SignedBy or " +
- "Principal"));
- }
- }
-
- if (principals != null) e.principals = principals;
- match("{");
-
- while(!peek("}")) {
- if (peek("Permission")) {
- try {
- PermissionEntry pe = parsePermissionEntry();
- e.add(pe);
- } catch (PropertyExpander.ExpandException peee) {
- // ignore. The add never happened
- if (debug != null) {
- debug.println(peee.toString());
- }
- skipEntry(); // BugId 4219343
- }
- match(";");
- } else {
- throw new
- ParsingException(st.lineno(),
- ResourcesMgr.getString(
- "expected permission entry"));
- }
- }
- match("}");
-
- try {
- if (e.signedBy != null) e.signedBy = expand(e.signedBy);
- if (e.codeBase != null) {
-
- // For backward compatibility with 1.4
- if (e.codeBase.equals(OLD_EXTDIRS_EXPANSION)) {
- e.codeBase = EXTDIRS_EXPANSION;
- }
- int es;
- if ((es=e.codeBase.indexOf(EXTDIRS_EXPANSION)) < 0) {
- e.codeBase = expand(e.codeBase, true).replace
- (File.separatorChar, '/');
- } else {
- // expand the system property "java.ext.dirs",
- // parse it into its path components,
- // and then create a grant entry for each component
- String[] extDirs = parseExtDirs(e.codeBase, es);
- if (extDirs != null && extDirs.length > 0) {
- for (int i = 0; i < extDirs.length; i++) {
- GrantEntry newGe = (GrantEntry)e.clone();
- newGe.codeBase = extDirs[i];
- add(newGe);
-
- if (debug != null) {
- debug.println("creating policy entry for " +
- "expanded java.ext.dirs path:\n\t\t" +
- extDirs[i]);
- }
- }
- }
- ignoreEntry = true;
- }
- }
- } catch (PropertyExpander.ExpandException peee) {
- if (debug != null) {
- debug.println(peee.toString());
- }
- return null;
- }
-
- return (ignoreEntry == true) ? null : e;
- }
-
- /**
- * parse a Permission entry
- */
- private PermissionEntry parsePermissionEntry()
- throws ParsingException, IOException, PropertyExpander.ExpandException
- {
- PermissionEntry e = new PermissionEntry();
-
- // Permission
- match("Permission");
- e.permission = match("permission type");
-
- if (peek("\"")) {
- // Permission name
- e.name = expand(match("quoted string"));
- }
-
- if (!peek(",")) {
- return e;
- }
- match(",");
-
- if (peek("\"")) {
- e.action = expand(match("quoted string"));
- if (!peek(",")) {
- return e;
- }
- match(",");
- }
-
- if (peekAndMatch("SignedBy")) {
- e.signedBy = expand(match("quoted string"));
- }
- return e;
- }
-
- // package-private: used by PolicyFile for static policy
- static String[] parseExtDirs(String codebase, int start) {
-
- String s = System.getProperty(EXTDIRS_PROPERTY);
- String globalPrefix = (start > 0 ? codebase.substring(0, start) : "file:");
- int end = start + EXTDIRS_EXPANSION.length();
- String globalSuffix = (end < codebase.length() ? codebase.substring(end) :
- (String) null);
-
- String[] dirs = null;
- String localSuffix;
- if (s != null) {
- StringTokenizer st =
- new StringTokenizer(s, File.pathSeparator);
- int count = st.countTokens();
- dirs = new String[count];
- for (int i = 0; i < count; i++) {
- File file = new File(st.nextToken());
- dirs[i] = sun.net.www.ParseUtil.encodePath
- (file.getAbsolutePath());
-
- if (!dirs[i].startsWith("/")) {
- dirs[i] = "/" + dirs[i];
- }
-
- localSuffix = (globalSuffix == null ?
- (dirs[i].endsWith("/") ? "*" : "/*") :
- globalSuffix);
-
- dirs[i] = globalPrefix + dirs[i] + localSuffix;
- }
- }
- return dirs;
- }
-
- private boolean peekAndMatch(String expect)
- throws ParsingException, IOException
- {
- if (peek(expect)) {
- match(expect);
- return true;
- } else {
- return false;
- }
- }
-
- private boolean peek(String expect) {
- boolean found = false;
-
- switch (lookahead) {
-
- case StreamTokenizer.TT_WORD:
- if (expect.equalsIgnoreCase(st.sval))
- found = true;
- break;
- case ',':
- if (expect.equalsIgnoreCase(","))
- found = true;
- break;
- case '{':
- if (expect.equalsIgnoreCase("{"))
- found = true;
- break;
- case '}':
- if (expect.equalsIgnoreCase("}"))
- found = true;
- break;
- case '"':
- if (expect.equalsIgnoreCase("\""))
- found = true;
- break;
- case '*':
- if (expect.equalsIgnoreCase("*"))
- found = true;
- break;
- default:
-
- }
- return found;
- }
-
- private String match(String expect)
- throws ParsingException, IOException
- {
- String value = null;
-
- switch (lookahead) {
- case StreamTokenizer.TT_NUMBER:
- throw new ParsingException(st.lineno(), expect,
- ResourcesMgr.getString("number ") +
- String.valueOf(st.nval));
- case StreamTokenizer.TT_EOF:
- MessageFormat form = new MessageFormat(
- ResourcesMgr.getString
- ("expected [expect], read [end of file]"));
- Object[] source = {expect};
- throw new ParsingException(form.format(source));
- case StreamTokenizer.TT_WORD:
- if (expect.equalsIgnoreCase(st.sval)) {
- lookahead = st.nextToken();
- } else if (expect.equalsIgnoreCase("permission type")) {
- value = st.sval;
- lookahead = st.nextToken();
- } else if (expect.equalsIgnoreCase("principal type")) {
- value = st.sval;
- lookahead = st.nextToken();
- } else {
- throw new ParsingException(st.lineno(), expect,
- st.sval);
- }
- break;
- case '"':
- if (expect.equalsIgnoreCase("quoted string")) {
- value = st.sval;
- lookahead = st.nextToken();
- } else if (expect.equalsIgnoreCase("permission type")) {
- value = st.sval;
- lookahead = st.nextToken();
- } else if (expect.equalsIgnoreCase("principal type")) {
- value = st.sval;
- lookahead = st.nextToken();
- } else {
- throw new ParsingException(st.lineno(), expect, st.sval);
- }
- break;
- case ',':
- if (expect.equalsIgnoreCase(","))
- lookahead = st.nextToken();
- else
- throw new ParsingException(st.lineno(), expect, ",");
- break;
- case '{':
- if (expect.equalsIgnoreCase("{"))
- lookahead = st.nextToken();
- else
- throw new ParsingException(st.lineno(), expect, "{");
- break;
- case '}':
- if (expect.equalsIgnoreCase("}"))
- lookahead = st.nextToken();
- else
- throw new ParsingException(st.lineno(), expect, "}");
- break;
- case ';':
- if (expect.equalsIgnoreCase(";"))
- lookahead = st.nextToken();
- else
- throw new ParsingException(st.lineno(), expect, ";");
- break;
- case '*':
- if (expect.equalsIgnoreCase("*"))
- lookahead = st.nextToken();
- else
- throw new ParsingException(st.lineno(), expect, "*");
- break;
- default:
- throw new ParsingException(st.lineno(), expect,
- new String(new char[] {(char)lookahead}));
- }
- return value;
- }
-
- /**
- * skip all tokens for this entry leaving the delimiter ";"
- * in the stream.
- */
- private void skipEntry() throws ParsingException, IOException {
- while(lookahead != ';') {
- switch (lookahead) {
- case StreamTokenizer.TT_NUMBER:
- throw new ParsingException(st.lineno(), ";",
- ResourcesMgr.getString("number ") +
- String.valueOf(st.nval));
- case StreamTokenizer.TT_EOF:
- throw new ParsingException(ResourcesMgr.getString
- ("expected [;], read [end of file]"));
- default:
- lookahead = st.nextToken();
- }
- }
- }
-
- /**
- * Each grant entry in the policy configuration file is
- * represented by a
- * GrantEntry object. <p>
- *
- * <p>
- * For example, the entry
- * <pre>
- * grant signedBy "Duke" {
- * permission java.io.FilePermission "/tmp", "read,write";
- * };
- *
- * </pre>
- * is represented internally
- * <pre>
- *
- * pe = new PermissionEntry("java.io.FilePermission",
- * "/tmp", "read,write");
- *
- * ge = new GrantEntry("Duke", null);
- *
- * ge.add(pe);
- *
- * </pre>
- *
- * @author Roland Schemers
- *
- * version 1.19, 05/21/98
- */
-
- public static class GrantEntry implements Cloneable {
-
- public String signedBy;
- public String codeBase;
- public LinkedList principals;
- public Vector permissionEntries;
-
- public GrantEntry() {
- principals = new LinkedList();
- permissionEntries = new Vector();
- }
-
- public GrantEntry(String signedBy, String codeBase) {
- this.codeBase = codeBase;
- this.signedBy = signedBy;
- principals = new LinkedList();
- permissionEntries = new Vector();
- }
-
- public void add(PermissionEntry pe)
- {
- permissionEntries.addElement(pe);
- }
-
- public boolean remove(PrincipalEntry pe)
- {
- return principals.remove(pe);
- }
-
- public boolean remove(PermissionEntry pe)
- {
- return permissionEntries.removeElement(pe);
- }
-
- public boolean contains(PrincipalEntry pe)
- {
- return principals.contains(pe);
- }
-
- public boolean contains(PermissionEntry pe)
- {
- return permissionEntries.contains(pe);
- }
-
- /**
- * Enumerate all the permission entries in this GrantEntry.
- */
- public Enumeration permissionElements(){
- return permissionEntries.elements();
- }
-
-
- public void write(PrintWriter out) {
- out.print("grant");
- if (signedBy != null) {
- out.print(" signedBy \"");
- out.print(signedBy);
- out.print('"');
- if (codeBase != null)
- out.print(", ");
- }
- if (codeBase != null) {
- out.print(" codeBase \"");
- out.print(codeBase);
- out.print('"');
- if (principals != null && principals.size() > 0)
- out.print(",\n");
- }
- if (principals != null && principals.size() > 0) {
- ListIterator pli = principals.listIterator();
- while (pli.hasNext()) {
- out.print(" ");
- PrincipalEntry pe = (PrincipalEntry)pli.next();
- pe.write(out);
- if (pli.hasNext())
- out.print(",\n");
- }
- }
- out.println(" {");
- Enumeration enum_ = permissionEntries.elements();
- while (enum_.hasMoreElements()) {
- PermissionEntry pe =
- (PermissionEntry) enum_.nextElement();
- out.write(" ");
- pe.write(out);
- }
- out.println("};");
- }
-
- public Object clone() {
- try {
- super.clone();
- } catch (CloneNotSupportedException e) {
- if(debug != null) {
- debug.println(e.getMessage());
- }
- }
-
- GrantEntry ge = new GrantEntry();
- ge.codeBase = this.codeBase;
- ge.signedBy = this.signedBy;
- ge.principals = new LinkedList(this.principals);
- ge.permissionEntries = new Vector(this.permissionEntries);
- return ge;
- }
- }
-
- /**
- * Principal info (class and name) in a grant entry
- */
- public static class PrincipalEntry {
-
- public static final String WILDCARD_CLASS = "WILDCARD_PRINCIPAL_CLASS";
- public static final String WILDCARD_NAME = "WILDCARD_PRINCIPAL_NAME";
-
- String principalClass;
- String principalName;
-
- /**
- * A PrincipalEntry consists of the <code>Principal</code>
- * class and <code>Principal</code> name.
- *
- * <p>
- *
- * @param principalClass the <code>Principal</code> class. <p>
- *
- * @param principalName the <code>Principal</code> name. <p>
- */
- public PrincipalEntry(String principalClass, String principalName) {
- if (principalClass == null || principalName == null)
- throw new NullPointerException(ResourcesMgr.getString(
- "null principalClass or principalName"));
- this.principalClass = principalClass;
- this.principalName = principalName;
- }
-
- public String getPrincipalClass() {
- return principalClass;
- }
-
- public String getPrincipalName() {
- return principalName;
- }
-
- public String getDisplayClass() {
- if (principalClass.equals(WILDCARD_CLASS)) {
- return "*";
- } else if (principalClass.equals(REPLACE_NAME)) {
- return "";
- }
- else return principalClass;
- }
-
- public String getDisplayName() {
- return getDisplayName(false);
- }
-
- public String getDisplayName(boolean addQuote) {
- if (principalName.equals(WILDCARD_NAME)) {
- return "*";
- }
- else {
- if (addQuote) return "\"" + principalName + "\"";
- else return principalName;
- }
- }
-
- public String toString() {
- if (!principalClass.equals(REPLACE_NAME)) {
- return getDisplayClass() + "/" + getDisplayName();
- } else {
- return getDisplayName();
- }
- }
-
- /**
- * Test for equality between the specified object and this object.
- * Two PrincipalEntries are equal if their PrincipalClass and
- * PrincipalName values are equal.
- *
- * <p>
- *
- * @param obj the object to test for equality with this object.
- *
- * @return true if the objects are equal, false otherwise.
- */
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
-
- if (!(obj instanceof PrincipalEntry))
- return false;
-
- PrincipalEntry that = (PrincipalEntry)obj;
- if (this.principalClass.equals(that.principalClass) &&
- this.principalName.equals(that.principalName)) {
- return true;
- }
-
- return false;
- }
-
- /**
- * Return a hashcode for this <code>PrincipalEntry</code>.
- *
- * <p>
- *
- * @return a hashcode for this <code>PrincipalEntry</code>.
- */
- public int hashCode() {
- return principalClass.hashCode();
- }
- public void write(PrintWriter out) {
- out.print("principal " + getDisplayClass() + " " +
- getDisplayName(true));
- }
- }
-
- /**
- * Each permission entry in the policy configuration file is
- * represented by a
- * PermissionEntry object. <p>
- *
- * <p>
- * For example, the entry
- * <pre>
- * permission java.io.FilePermission "/tmp", "read,write";
- * </pre>
- * is represented internally
- * <pre>
- *
- * pe = new PermissionEntry("java.io.FilePermission",
- * "/tmp", "read,write");
- * </pre>
- *
- * @author Roland Schemers
- *
- * version 1.19, 05/21/98
- */
-
- public static class PermissionEntry {
-
- public String permission;
- public String name;
- public String action;
- public String signedBy;
-
- public PermissionEntry() {
- }
-
- public PermissionEntry(String permission,
- String name,
- String action) {
- this.permission = permission;
- this.name = name;
- this.action = action;
- }
-
- /**
- * Calculates a hash code value for the object. Objects
- * which are equal will also have the same hashcode.
- */
- public int hashCode() {
- int retval = permission.hashCode();
- if (name != null) retval ^= name.hashCode();
- if (action != null) retval ^= action.hashCode();
- return retval;
- }
-
- public boolean equals(Object obj) {
- if (obj == this)
- return true;
-
- if (! (obj instanceof PermissionEntry))
- return false;
-
- PermissionEntry that = (PermissionEntry) obj;
-
- if (this.permission == null) {
- if (that.permission != null) return false;
- } else {
- if (!this.permission.equals(that.permission)) return false;
- }
-
- if (this.name == null) {
- if (that.name != null) return false;
- } else {
- if (!this.name.equals(that.name)) return false;
- }
-
- if (this.action == null) {
- if (that.action != null) return false;
- } else {
- if (!this.action.equals(that.action)) return false;
- }
-
- if (this.signedBy == null) {
- if (that.signedBy != null) return false;
- } else {
- if (!this.signedBy.equals(that.signedBy)) return false;
- }
-
- // everything matched -- the 2 objects are equal
- return true;
- }
-
- public void write(PrintWriter out) {
- out.print("permission ");
- out.print(permission);
- if (name != null) {
- out.print(" \"");
-
- // ATTENTION: regex with double escaping,
- // the normal forms look like:
- // $name =~ s/\\/\\\\/g; and
- // $name =~ s/\"/\\\"/g;
- // and then in a java string, it's escaped again
-
- out.print(name.replaceAll("\\\\", "\\\\\\\\").replaceAll("\\\"", "\\\\\\\""));
- out.print('"');
- }
- if (action != null) {
- out.print(", \"");
- out.print(action);
- out.print('"');
- }
- if (signedBy != null) {
- out.print(", signedBy \"");
- out.print(signedBy);
- out.print('"');
- }
- out.println(";");
- }
- }
-
- public static class ParsingException extends GeneralSecurityException {
-
- private static final long serialVersionUID = -4330692689482574072L;
-
- private String i18nMessage;
-
- /**
- * Constructs a ParsingException with the specified
- * detail message. A detail message is a String that describes
- * this particular exception, which may, for example, specify which
- * algorithm is not available.
- *
- * @param msg the detail message.
- */
- public ParsingException(String msg) {
- super(msg);
- i18nMessage = msg;
- }
-
- public ParsingException(int line, String msg) {
- super("line " + line + ": " + msg);
- MessageFormat form = new MessageFormat
- (ResourcesMgr.getString("line number: msg"));
- Object[] source = {Integer.valueOf(line), msg};
- i18nMessage = form.format(source);
- }
-
- public ParsingException(int line, String expect, String actual) {
- super("line " + line + ": expected [" + expect +
- "], found [" + actual + "]");
- MessageFormat form = new MessageFormat(ResourcesMgr.getString
- ("line number: expected [expect], found [actual]"));
- Object[] source = {Integer.valueOf(line), expect, actual};
- i18nMessage = form.format(source);
- }
-
- public String getLocalizedMessage() {
- return i18nMessage;
- }
- }
-
- public static void main(String arg[]) throws Exception {
- try (FileReader fileReader = new FileReader(arg[0]);
- FileWriter fr = new FileWriter(arg[1])) {
- PolicyParser pp = new PolicyParser(true);
- pp.read(fileReader);
- pp.write(fr);
- }
- }
-}
diff --git a/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/provider/PolicyUtil.java b/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/provider/PolicyUtil.java
deleted file mode 100644
index 7e94490..0000000
--- a/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/provider/PolicyUtil.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0, which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the
- * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
- * version 2 with the GNU Classpath Exception, which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- */
-
-package com.sun.enterprise.security.provider;
-
-import java.io.*;
-import java.net.*;
-import java.security.*;
-import java.util.Arrays;
-
-import sun.net.www.ParseUtil;
-import sun.security.util.Debug;
-import sun.security.util.Password;
-
-
-/**
- * A utility class for getting a KeyStore instance from policy information.
- * In addition, a supporting getInputStream method.
- *
- * @version 1.2
- */
-public class PolicyUtil {
-
- // standard PKCS11 KeyStore type
- private static final String P11KEYSTORE = "PKCS11";
-
- // reserved word
- private static final String NONE = "NONE";
-
- /*
- * Fast path reading from file urls in order to avoid calling
- * FileURLConnection.connect() which can be quite slow the first time
- * it is called. We really should clean up FileURLConnection so that
- * this is not a problem but in the meantime this fix helps reduce
- * start up time noticeably for the new launcher. -- DAC
- */
- public static InputStream getInputStream(URL url) throws IOException {
- if ("file".equals(url.getProtocol())) {
- String path = url.getFile().replace('/', File.separatorChar);
- path = ParseUtil.decode(path);
- return new FileInputStream(path);
- } else {
- return url.openStream();
- }
- }
-
- /**
- * this is intended for use by policytool and the policy parser to
- * instantiate a KeyStore from the information in the GUI/policy file
- */
- public static KeyStore getKeyStore
- (URL policyUrl, // URL of policy file
- String keyStoreName, // input: keyStore URL
- String keyStoreType, // input: keyStore type
- String keyStoreProvider, // input: keyStore provider
- String storePassURL, // input: keyStore password
- Debug debug)
- throws KeyStoreException, MalformedURLException, IOException,
- NoSuchProviderException, NoSuchAlgorithmException,
- java.security.cert.CertificateException {
-
- if (keyStoreName == null) {
- throw new IllegalArgumentException("null KeyStore name");
- }
-
- char[] keyStorePassword = null;
- try {
- KeyStore ks;
- if (keyStoreType == null) {
- keyStoreType = KeyStore.getDefaultType();
- }
-
- if (P11KEYSTORE.equalsIgnoreCase(keyStoreType) &&
- !NONE.equals(keyStoreName)) {
- throw new IllegalArgumentException
- ("Invalid value (" +
- keyStoreName +
- ") for keystore URL. If the keystore type is \"" +
- P11KEYSTORE +
- "\", the keystore url must be \"" +
- NONE +
- "\"");
- }
-
- if (keyStoreProvider != null) {
- ks = KeyStore.getInstance(keyStoreType, keyStoreProvider);
- } else {
- ks = KeyStore.getInstance(keyStoreType);
- }
-
- if (storePassURL != null) {
- URL passURL;
- try {
- passURL = new URL(storePassURL);
- // absolute URL
- } catch (MalformedURLException e) {
- // relative URL
- if (policyUrl == null) {
- throw e;
- }
- passURL = new URL(policyUrl, storePassURL);
- }
-
- if (debug != null) {
- debug.println("reading password"+passURL);
- }
-
- InputStream in = passURL.openStream();
- keyStorePassword = Password.readPassword(in);
- in.close();
- }
-
- if (NONE.equals(keyStoreName)) {
- ks.load(null, keyStorePassword);
- return ks;
- } else {
- /*
- * location of keystore is specified as absolute URL in policy
- * file, or is relative to URL of policy file
- */
- URL keyStoreUrl = null;
- try {
- keyStoreUrl = new URL(keyStoreName);
- // absolute URL
- } catch (MalformedURLException e) {
- // relative URL
- if (policyUrl == null) {
- throw e;
- }
- keyStoreUrl = new URL(policyUrl, keyStoreName);
- }
-
- if (debug != null) {
- debug.println("reading keystore"+keyStoreUrl);
- }
-
- InputStream inStream = null;
- try {
- inStream = new BufferedInputStream(getInputStream(keyStoreUrl));
- ks.load(inStream, keyStorePassword);
- } finally {
- inStream.close();
- }
-
- return ks;
- }
- } finally {
- if (keyStorePassword != null) {
- Arrays.fill(keyStorePassword, ' ');
- }
- }
- }
-}
diff --git a/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/provider/PolicyWrapper.java b/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/provider/PolicyWrapper.java
deleted file mode 100644
index 06c2a4f..0000000
--- a/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/provider/PolicyWrapper.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0, which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the
- * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
- * version 2 with the GNU Classpath Exception, which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- */
-
-/*
- * PolicyWrapper.java
- *
- * @author Harpreet Singh (harpreet.singh@sun.com)
- * @author Ron Monzillo
- * @version
-5B
- * Created on May 23, 2002, 1:56 PM
- */
-
-package com.sun.enterprise.security.provider;
-
-/**
- * This class is a wrapper around the default jdk policy file
- * implementation. PolicyWrapper is installed as the JRE policy object
- * It multiplexes policy decisions to the context specific instance of
- * com.sun.enterprise.security.provider.PolicyFile.
- * Although this Policy provider is implemented using another Policy class,
- * this class is not a "delegating Policy provider" as defined by JACC, and
- * as such it SHOULD not be configured using the JACC system property
- * jakarta.security.jacc.policy.provider.
- * @author Harpreet Singh (harpreet.singh@sun.com)
- * @author Jean-Francois Arcand
- * @author Ron Monzillo
- *
- */
-public class PolicyWrapper extends BasePolicyWrapper {
-
- // override to change the implementation of PolicyFile
- /** gets the underlying PolicyFile implementation
- * can be overridden by Subclass
- */
- @Override
- protected java.security.Policy getNewPolicy() {
- return (java.security.Policy) new sun.security.provider.PolicyFile();
- }
-}
-
diff --git a/appserver/tests/amx/src/org/glassfish/admin/amxtest/config/JACCProviderConfigTest.java b/appserver/tests/amx/src/org/glassfish/admin/amxtest/config/JACCProviderConfigTest.java
index f4ccc9d..28d1d52 100644
--- a/appserver/tests/amx/src/org/glassfish/admin/amxtest/config/JACCProviderConfigTest.java
+++ b/appserver/tests/amx/src/org/glassfish/admin/amxtest/config/JACCProviderConfigTest.java
@@ -28,8 +28,8 @@
*/
public final class JACCProviderConfigTest
extends ConfigMgrTestBase {
- static final String PROVIDER = "com.sun.enterprise.security.provider.PolicyWrapper";
- static final String PROVIDER_FACTORY = "com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl";
+ static final String PROVIDER = "com.sun.enterprise.security.jacc.provider.SimplePolicyProvider";
+ static final String PROVIDER_FACTORY = "com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory";
static final Map<String, String> RESERVED = null;
public JACCProviderConfigTest() {
diff --git a/appserver/tests/appserv-tests/devtests/admin/cli/resources/configs/v2domain.xml b/appserver/tests/appserv-tests/devtests/admin/cli/resources/configs/v2domain.xml
index 0bc1235..4755fa7 100644
--- a/appserver/tests/appserv-tests/devtests/admin/cli/resources/configs/v2domain.xml
+++ b/appserver/tests/appserv-tests/devtests/admin/cli/resources/configs/v2domain.xml
@@ -137,7 +137,7 @@
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate">
</auth-realm>
- <jacc-provider name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl" policy-provider="com.sun.enterprise.security.provider.PolicyWrapper">
+ <jacc-provider name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"/>
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.Audit" name="default">
@@ -283,7 +283,7 @@
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate">
</auth-realm>
- <jacc-provider name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl" policy-provider="com.sun.enterprise.security.provider.PolicyWrapper">
+ <jacc-provider name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"/>
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.Audit" name="default">
@@ -435,7 +435,7 @@
<property name="jaas-context" value="fileRealm"/>
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate"/>
- <jacc-provider name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl" policy-provider="com.sun.enterprise.security.provider.PolicyWrapper">
+ <jacc-provider name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"/>
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.Audit" name="default">
@@ -586,7 +586,7 @@
<property name="jaas-context" value="fileRealm"/>
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate"/>
- <jacc-provider name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl" policy-provider="com.sun.enterprise.security.provider.PolicyWrapper">
+ <jacc-provider name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"/>
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.Audit" name="default">
diff --git a/appserver/tests/appserv-tests/devtests/admin/cli/resources/configs/v3_0_1domain.xml b/appserver/tests/appserv-tests/devtests/admin/cli/resources/configs/v3_0_1domain.xml
index 39da184..c212150 100644
--- a/appserver/tests/appserv-tests/devtests/admin/cli/resources/configs/v3_0_1domain.xml
+++ b/appserver/tests/appserv-tests/devtests/admin/cli/resources/configs/v3_0_1domain.xml
@@ -101,7 +101,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
diff --git a/appserver/tests/appserv-tests/devtests/security/container-auth/testConfig/domain.xml b/appserver/tests/appserv-tests/devtests/security/container-auth/testConfig/domain.xml
index 1abdee7..3b2cd7c 100644
--- a/appserver/tests/appserv-tests/devtests/security/container-auth/testConfig/domain.xml
+++ b/appserver/tests/appserv-tests/devtests/security/container-auth/testConfig/domain.xml
@@ -132,7 +132,7 @@
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate">
</auth-realm>
- <jacc-provider name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl" policy-provider="com.sun.enterprise.security.provider.PolicyWrapper">
+ <jacc-provider name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"/>
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.Audit" name="default">
diff --git a/appserver/tests/embedded/web/web-api/src/main/resources/org/glassfish/tests/webapi/domain.xml b/appserver/tests/embedded/web/web-api/src/main/resources/org/glassfish/tests/webapi/domain.xml
index 3d9e3f0..dbe2004 100644
--- a/appserver/tests/embedded/web/web-api/src/main/resources/org/glassfish/tests/webapi/domain.xml
+++ b/appserver/tests/embedded/web/web-api/src/main/resources/org/glassfish/tests/webapi/domain.xml
@@ -87,7 +87,7 @@
<property value="fileRealm" name="jaas-context" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl" policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default">
+ <jacc-provider policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default">
<property value="${com.sun.aas.instanceRoot}/generated/policy" name="repository" />
</jacc-provider>
<jacc-provider policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" />
diff --git a/appserver/tests/v2-tests/appserv-tests/devtests/admin/framework/testfiles/test.xml b/appserver/tests/v2-tests/appserv-tests/devtests/admin/framework/testfiles/test.xml
index e762504..21398c9 100755
--- a/appserver/tests/v2-tests/appserv-tests/devtests/admin/framework/testfiles/test.xml
+++ b/appserver/tests/v2-tests/appserv-tests/devtests/admin/framework/testfiles/test.xml
@@ -133,7 +133,7 @@
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate">
</auth-realm>
- <jacc-provider name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl" policy-provider="com.sun.enterprise.security.provider.PolicyWrapper">
+ <jacc-provider name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"/>
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.Audit" name="default">
@@ -280,7 +280,7 @@
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate">
</auth-realm>
- <jacc-provider name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl" policy-provider="com.sun.enterprise.security.provider.PolicyWrapper">
+ <jacc-provider name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"/>
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.Audit" name="default">
diff --git a/appserver/tests/v2-tests/appserv-tests/devtests/admin/offlineconfig/testfiles/domain.xml b/appserver/tests/v2-tests/appserv-tests/devtests/admin/offlineconfig/testfiles/domain.xml
index 8a9a0cb..d44d1f0 100644
--- a/appserver/tests/v2-tests/appserv-tests/devtests/admin/offlineconfig/testfiles/domain.xml
+++ b/appserver/tests/v2-tests/appserv-tests/devtests/admin/offlineconfig/testfiles/domain.xml
@@ -129,7 +129,7 @@
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate">
</auth-realm>
- <jacc-provider name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl" policy-provider="com.sun.enterprise.security.provider.PolicyWrapper">
+ <jacc-provider name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"/>
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.Audit" name="default">
@@ -263,7 +263,7 @@
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate">
</auth-realm>
- <jacc-provider name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl" policy-provider="com.sun.enterprise.security.provider.PolicyWrapper">
+ <jacc-provider name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"/>
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.Audit" name="default">
diff --git a/appserver/tests/v2-tests/appserv-tests/devtests/appserv-commons/com/sun/enterprise/config/domain.orig.xml b/appserver/tests/v2-tests/appserv-tests/devtests/appserv-commons/com/sun/enterprise/config/domain.orig.xml
index 2a35318..3564158 100755
--- a/appserver/tests/v2-tests/appserv-tests/devtests/appserv-commons/com/sun/enterprise/config/domain.orig.xml
+++ b/appserver/tests/v2-tests/appserv-tests/devtests/appserv-commons/com/sun/enterprise/config/domain.orig.xml
@@ -115,7 +115,7 @@
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm">
</auth-realm>
- <jacc-provider name="default" policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider name="default" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"/>
</jacc-provider>
<audit-module name="default" classname="com.sun.enterprise.security.Audit">
@@ -219,7 +219,7 @@
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm">
</auth-realm>
- <jacc-provider name="default" policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider name="default" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"/>
</jacc-provider>
<audit-module name="default" classname="com.sun.enterprise.security.Audit">
diff --git a/docs/reference-manual/src/main/jbake/content/create-jacc-provider.adoc b/docs/reference-manual/src/main/jbake/content/create-jacc-provider.adoc
index 9004149..1e0a90f 100644
--- a/docs/reference-manual/src/main/jbake/content/create-jacc-provider.adoc
+++ b/docs/reference-manual/src/main/jbake/content/create-jacc-provider.adoc
@@ -123,8 +123,8 @@
[source,oac_no_warn]
----
asadmin> create-jacc-provider
---policyproviderclass com.sun.enterprise.security.provider.PolicyWrapper
---policyconfigfactoryclass com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl
+--policyproviderclass com.sun.enterprise.security.jacc.provider.SimplePolicyProvider
+--policyconfigfactoryclass com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory
testJACC
Command create-jacc-provider executed successfully.
diff --git a/docs/security-guide/src/main/jbake/content/system-security.adoc b/docs/security-guide/src/main/jbake/content/system-security.adoc
index 22078c8..a13dd20 100644
--- a/docs/security-guide/src/main/jbake/content/system-security.adoc
+++ b/docs/security-guide/src/main/jbake/content/system-security.adoc
@@ -2205,7 +2205,7 @@
[source,oac_no_warn]
----
asadmin> create-jacc-provider
- --policyproviderclass com.sun.enterprise.security.provider.PolicyWrapper
+ --policyproviderclass com.sun.enterprise.security.jacc.provider.SimplePolicyProvider
--policyconfigfactoryclass com.sun.enterprise.security.provider.PolicyCon
figurationFactoryImpl
testJACC
diff --git a/nucleus/admin/config-api/src/main/java/org/glassfish/config/support/DefaultConfigUpgrade.java b/nucleus/admin/config-api/src/main/java/org/glassfish/config/support/DefaultConfigUpgrade.java
index 8a26f9f..b6c8033 100644
--- a/nucleus/admin/config-api/src/main/java/org/glassfish/config/support/DefaultConfigUpgrade.java
+++ b/nucleus/admin/config-api/src/main/java/org/glassfish/config/support/DefaultConfigUpgrade.java
@@ -529,7 +529,7 @@
* <property name="jaas-context" value="fileRealm"/>
* </auth-realm>
* <auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate"/>
- * <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ * <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
* <property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"/>
* </jacc-provider>
* <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory"/>
@@ -654,7 +654,7 @@
/* Loop through all jacc-provider elements in the template and create JaccProvider config objects.
* Cursor should already be at first jacc-provider START_ELEMENT.
* from template:
- * <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ * <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
* <property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"/>
* </jacc-provider>
* <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory"/>
diff --git a/nucleus/admin/config-api/src/test/resources/ClusterDomain.xml b/nucleus/admin/config-api/src/test/resources/ClusterDomain.xml
index badb4bc..b9b9aeb 100644
--- a/nucleus/admin/config-api/src/test/resources/ClusterDomain.xml
+++ b/nucleus/admin/config-api/src/test/resources/ClusterDomain.xml
@@ -50,7 +50,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
@@ -177,7 +177,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
@@ -304,7 +304,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
diff --git a/nucleus/admin/config-api/src/test/resources/DomainTest.xml b/nucleus/admin/config-api/src/test/resources/DomainTest.xml
index 01c8dee..73adfb2 100644
--- a/nucleus/admin/config-api/src/test/resources/DomainTest.xml
+++ b/nucleus/admin/config-api/src/test/resources/DomainTest.xml
@@ -76,7 +76,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
diff --git a/nucleus/admin/config-api/src/test/resources/parser/c1i1.xml b/nucleus/admin/config-api/src/test/resources/parser/c1i1.xml
index dc0dd60..881ff60 100644
--- a/nucleus/admin/config-api/src/test/resources/parser/c1i1.xml
+++ b/nucleus/admin/config-api/src/test/resources/parser/c1i1.xml
@@ -96,7 +96,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
@@ -221,7 +221,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
@@ -352,7 +352,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
@@ -483,7 +483,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
@@ -614,7 +614,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
@@ -745,7 +745,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
@@ -876,7 +876,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
diff --git a/nucleus/admin/config-api/src/test/resources/parser/c1i1c1i2.xml b/nucleus/admin/config-api/src/test/resources/parser/c1i1c1i2.xml
index 0f2c68d..1971902 100644
--- a/nucleus/admin/config-api/src/test/resources/parser/c1i1c1i2.xml
+++ b/nucleus/admin/config-api/src/test/resources/parser/c1i1c1i2.xml
@@ -107,7 +107,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
@@ -232,7 +232,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
@@ -363,7 +363,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
@@ -494,7 +494,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
@@ -625,7 +625,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
@@ -756,7 +756,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
@@ -887,7 +887,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
diff --git a/nucleus/admin/config-api/src/test/resources/parser/i1.xml b/nucleus/admin/config-api/src/test/resources/parser/i1.xml
index 8db57d7..14af053 100644
--- a/nucleus/admin/config-api/src/test/resources/parser/i1.xml
+++ b/nucleus/admin/config-api/src/test/resources/parser/i1.xml
@@ -74,7 +74,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
@@ -199,7 +199,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
@@ -330,7 +330,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
diff --git a/nucleus/admin/config-api/src/test/resources/parser/i1i2.xml b/nucleus/admin/config-api/src/test/resources/parser/i1i2.xml
index 50483d8..6c05f84 100644
--- a/nucleus/admin/config-api/src/test/resources/parser/i1i2.xml
+++ b/nucleus/admin/config-api/src/test/resources/parser/i1i2.xml
@@ -85,7 +85,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
@@ -210,7 +210,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
@@ -341,7 +341,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
@@ -472,7 +472,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
diff --git a/nucleus/admin/config-api/src/test/resources/parser/noconfigfori1.xml b/nucleus/admin/config-api/src/test/resources/parser/noconfigfori1.xml
index f78ba3b..32f8c12 100644
--- a/nucleus/admin/config-api/src/test/resources/parser/noconfigfori1.xml
+++ b/nucleus/admin/config-api/src/test/resources/parser/noconfigfori1.xml
@@ -74,7 +74,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
@@ -199,7 +199,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
@@ -330,7 +330,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
diff --git a/nucleus/admin/config-api/src/test/resources/parser/stock.xml b/nucleus/admin/config-api/src/test/resources/parser/stock.xml
index f59a4f6..89a454e 100644
--- a/nucleus/admin/config-api/src/test/resources/parser/stock.xml
+++ b/nucleus/admin/config-api/src/test/resources/parser/stock.xml
@@ -84,7 +84,7 @@
<property value="fileRealm" name="jaas-context" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl" policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default">
+ <jacc-provider policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default">
<property value="${com.sun.aas.instanceRoot}/generated/policy" name="repository" />
</jacc-provider>
<jacc-provider policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" />
@@ -241,7 +241,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
diff --git a/nucleus/admin/launcher/src/test/resources/domains/baddomain/config/domain.xml b/nucleus/admin/launcher/src/test/resources/domains/baddomain/config/domain.xml
index 831c40f..a104496 100644
--- a/nucleus/admin/launcher/src/test/resources/domains/baddomain/config/domain.xml
+++ b/nucleus/admin/launcher/src/test/resources/domains/baddomain/config/domain.xml
@@ -98,7 +98,7 @@
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate"></auth-realm>
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.ee.Audit" name="default">
diff --git a/nucleus/admin/launcher/src/test/resources/domains/domain1/config/domain.xml b/nucleus/admin/launcher/src/test/resources/domains/domain1/config/domain.xml
index 196774a..5b1e42c 100644
--- a/nucleus/admin/launcher/src/test/resources/domains/domain1/config/domain.xml
+++ b/nucleus/admin/launcher/src/test/resources/domains/domain1/config/domain.xml
@@ -97,7 +97,7 @@
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate"></auth-realm>
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.ee.Audit" name="default">
diff --git a/nucleus/admin/launcher/src/test/resources/domains/domain2/config/domain.xml b/nucleus/admin/launcher/src/test/resources/domains/domain2/config/domain.xml
index e9739fc..685b06e 100644
--- a/nucleus/admin/launcher/src/test/resources/domains/domain2/config/domain.xml
+++ b/nucleus/admin/launcher/src/test/resources/domains/domain2/config/domain.xml
@@ -99,7 +99,7 @@
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate"></auth-realm>
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.ee.Audit" name="default">
diff --git a/nucleus/admin/launcher/src/test/resources/domains/domain3/config/domain.xml b/nucleus/admin/launcher/src/test/resources/domains/domain3/config/domain.xml
index 59790a0..d426b9b 100644
--- a/nucleus/admin/launcher/src/test/resources/domains/domain3/config/domain.xml
+++ b/nucleus/admin/launcher/src/test/resources/domains/domain3/config/domain.xml
@@ -97,7 +97,7 @@
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate"></auth-realm>
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.ee.Audit" name="default">
diff --git a/nucleus/admin/launcher/src/test/resources/domains/domainNoLog/config/domain.xml b/nucleus/admin/launcher/src/test/resources/domains/domainNoLog/config/domain.xml
index 94f5337..2b0459f 100644
--- a/nucleus/admin/launcher/src/test/resources/domains/domainNoLog/config/domain.xml
+++ b/nucleus/admin/launcher/src/test/resources/domains/domainNoLog/config/domain.xml
@@ -94,7 +94,7 @@
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate"></auth-realm>
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.ee.Audit" name="default">
diff --git a/nucleus/admin/template/src/main/resources/config/domain.xml b/nucleus/admin/template/src/main/resources/config/domain.xml
index 6ca7381..b8b57a9 100644
--- a/nucleus/admin/template/src/main/resources/config/domain.xml
+++ b/nucleus/admin/template/src/main/resources/config/domain.xml
@@ -80,7 +80,7 @@
<property value="fileRealm" name="jaas-context" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl" policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default">
+ <jacc-provider policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default">
<property value="${com.sun.aas.instanceRoot}/generated/policy" name="repository" />
</jacc-provider>
<jacc-provider policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" />
@@ -238,7 +238,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
diff --git a/nucleus/common/common-util/src/test/resources/adminport.xml b/nucleus/common/common-util/src/test/resources/adminport.xml
index bb920d6..1228fec 100644
--- a/nucleus/common/common-util/src/test/resources/adminport.xml
+++ b/nucleus/common/common-util/src/test/resources/adminport.xml
@@ -97,7 +97,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.ee.Audit" name="default">
diff --git a/nucleus/common/common-util/src/test/resources/adminport2.xml b/nucleus/common/common-util/src/test/resources/adminport2.xml
index c542476..8abb16f 100644
--- a/nucleus/common/common-util/src/test/resources/adminport2.xml
+++ b/nucleus/common/common-util/src/test/resources/adminport2.xml
@@ -84,7 +84,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.ee.Audit" name="default">
diff --git a/nucleus/common/common-util/src/test/resources/big.xml b/nucleus/common/common-util/src/test/resources/big.xml
index aa3d368..df4f58c 100644
--- a/nucleus/common/common-util/src/test/resources/big.xml
+++ b/nucleus/common/common-util/src/test/resources/big.xml
@@ -88,7 +88,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
diff --git a/nucleus/common/common-util/src/test/resources/clusters1.xml b/nucleus/common/common-util/src/test/resources/clusters1.xml
index eac0e1d..094cef7 100644
--- a/nucleus/common/common-util/src/test/resources/clusters1.xml
+++ b/nucleus/common/common-util/src/test/resources/clusters1.xml
@@ -119,7 +119,7 @@
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate"></auth-realm>
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory"></jacc-provider>
@@ -278,7 +278,7 @@
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate"></auth-realm>
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory"></jacc-provider>
@@ -444,7 +444,7 @@
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm"></auth-realm>
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory"></jacc-provider>
@@ -610,7 +610,7 @@
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm"></auth-realm>
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory"></jacc-provider>
@@ -776,7 +776,7 @@
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm"></auth-realm>
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory"></jacc-provider>
@@ -942,7 +942,7 @@
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm"></auth-realm>
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory"></jacc-provider>
diff --git a/nucleus/common/common-util/src/test/resources/hasprofiler.xml b/nucleus/common/common-util/src/test/resources/hasprofiler.xml
index 8b3bf40..fb45a61 100644
--- a/nucleus/common/common-util/src/test/resources/hasprofiler.xml
+++ b/nucleus/common/common-util/src/test/resources/hasprofiler.xml
@@ -98,7 +98,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.ee.Audit" name="default">
diff --git a/nucleus/common/common-util/src/test/resources/manysysprops.xml b/nucleus/common/common-util/src/test/resources/manysysprops.xml
index b6bb320..59ef69f 100644
--- a/nucleus/common/common-util/src/test/resources/manysysprops.xml
+++ b/nucleus/common/common-util/src/test/resources/manysysprops.xml
@@ -124,7 +124,7 @@
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate"></auth-realm>
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory"></jacc-provider>
@@ -283,7 +283,7 @@
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate"></auth-realm>
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory"></jacc-provider>
@@ -452,7 +452,7 @@
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm"></auth-realm>
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory"></jacc-provider>
@@ -618,7 +618,7 @@
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm"></auth-realm>
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory"></jacc-provider>
@@ -784,7 +784,7 @@
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm"></auth-realm>
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory"></jacc-provider>
@@ -950,7 +950,7 @@
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm"></auth-realm>
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory"></jacc-provider>
diff --git a/nucleus/common/common-util/src/test/resources/monitoringFalse.xml b/nucleus/common/common-util/src/test/resources/monitoringFalse.xml
index 30efb6e..d33b737 100644
--- a/nucleus/common/common-util/src/test/resources/monitoringFalse.xml
+++ b/nucleus/common/common-util/src/test/resources/monitoringFalse.xml
@@ -88,7 +88,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
diff --git a/nucleus/common/common-util/src/test/resources/monitoringNone.xml b/nucleus/common/common-util/src/test/resources/monitoringNone.xml
index 0680843..64a614e 100644
--- a/nucleus/common/common-util/src/test/resources/monitoringNone.xml
+++ b/nucleus/common/common-util/src/test/resources/monitoringNone.xml
@@ -88,7 +88,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
diff --git a/nucleus/common/common-util/src/test/resources/monitoringTrue.xml b/nucleus/common/common-util/src/test/resources/monitoringTrue.xml
index 9095d48..4d05d72 100644
--- a/nucleus/common/common-util/src/test/resources/monitoringTrue.xml
+++ b/nucleus/common/common-util/src/test/resources/monitoringTrue.xml
@@ -88,7 +88,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" />
diff --git a/nucleus/common/common-util/src/test/resources/noconfig.xml b/nucleus/common/common-util/src/test/resources/noconfig.xml
index e9ba437..9d94831 100644
--- a/nucleus/common/common-util/src/test/resources/noconfig.xml
+++ b/nucleus/common/common-util/src/test/resources/noconfig.xml
@@ -97,7 +97,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.ee.Audit" name="default">
diff --git a/nucleus/common/common-util/src/test/resources/nodomainname.xml b/nucleus/common/common-util/src/test/resources/nodomainname.xml
index 9f799d7..edc6142 100644
--- a/nucleus/common/common-util/src/test/resources/nodomainname.xml
+++ b/nucleus/common/common-util/src/test/resources/nodomainname.xml
@@ -98,7 +98,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.ee.Audit" name="default">
diff --git a/nucleus/common/common-util/src/test/resources/olddomain.xml b/nucleus/common/common-util/src/test/resources/olddomain.xml
index f67045d..84c72bc 100644
--- a/nucleus/common/common-util/src/test/resources/olddomain.xml
+++ b/nucleus/common/common-util/src/test/resources/olddomain.xml
@@ -71,7 +71,7 @@
<property value="fileRealm" name="jaas-context" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl" policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default">
+ <jacc-provider policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default">
<property value="${com.sun.aas.instanceRoot}/generated/policy" name="repository" />
</jacc-provider>
<jacc-provider policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" />
diff --git a/nucleus/common/common-util/src/test/resources/rightorder.xml b/nucleus/common/common-util/src/test/resources/rightorder.xml
index 1a403da..15a6dbb 100644
--- a/nucleus/common/common-util/src/test/resources/rightorder.xml
+++ b/nucleus/common/common-util/src/test/resources/rightorder.xml
@@ -98,7 +98,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.ee.Audit" name="default">
diff --git a/nucleus/common/common-util/src/test/resources/rightordernoclosedomain.xml b/nucleus/common/common-util/src/test/resources/rightordernoclosedomain.xml
index 3718b91..5fd9cbf 100644
--- a/nucleus/common/common-util/src/test/resources/rightordernoclosedomain.xml
+++ b/nucleus/common/common-util/src/test/resources/rightordernoclosedomain.xml
@@ -143,7 +143,7 @@
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm">
</auth-realm>
- <jacc-provider name="default" policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider name="default" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"/>
</jacc-provider>
<audit-module name="default" classname="com.sun.enterprise.security.ee.Audit">
diff --git a/nucleus/common/common-util/src/test/resources/v2domain.xml b/nucleus/common/common-util/src/test/resources/v2domain.xml
index 752a564..95d72fd 100644
--- a/nucleus/common/common-util/src/test/resources/v2domain.xml
+++ b/nucleus/common/common-util/src/test/resources/v2domain.xml
@@ -133,7 +133,7 @@
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate">
</auth-realm>
- <jacc-provider name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl" policy-provider="com.sun.enterprise.security.provider.PolicyWrapper">
+ <jacc-provider name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"/>
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.ee.Audit" name="default">
diff --git a/nucleus/common/common-util/src/test/resources/wrongorder.xml b/nucleus/common/common-util/src/test/resources/wrongorder.xml
index 4cacb95..c633df1 100644
--- a/nucleus/common/common-util/src/test/resources/wrongorder.xml
+++ b/nucleus/common/common-util/src/test/resources/wrongorder.xml
@@ -85,7 +85,7 @@
<property name="jaas-context" value="fileRealm" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.ee.Audit" name="default">
diff --git a/nucleus/common/common-util/src/test/resources/wrongordernoclosedomain.xml b/nucleus/common/common-util/src/test/resources/wrongordernoclosedomain.xml
index 66677b4..2f88fc0 100644
--- a/nucleus/common/common-util/src/test/resources/wrongordernoclosedomain.xml
+++ b/nucleus/common/common-util/src/test/resources/wrongordernoclosedomain.xml
@@ -130,7 +130,7 @@
</auth-realm>
<auth-realm name="certificate" classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm">
</auth-realm>
- <jacc-provider name="default" policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider name="default" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"/>
</jacc-provider>
<audit-module name="default" classname="com.sun.enterprise.security.ee.Audit">
diff --git a/nucleus/core/kernel/src/main/resources/org/glassfish/embed/domain.xml b/nucleus/core/kernel/src/main/resources/org/glassfish/embed/domain.xml
index 76db7d7..57f0a72 100644
--- a/nucleus/core/kernel/src/main/resources/org/glassfish/embed/domain.xml
+++ b/nucleus/core/kernel/src/main/resources/org/glassfish/embed/domain.xml
@@ -90,7 +90,7 @@
<property value="fileRealm" name="jaas-context" />
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
- <jacc-provider policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl" policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default">
+ <jacc-provider policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default">
<property value="${com.sun.aas.instanceRoot}/generated/policy" name="repository" />
</jacc-provider>
<jacc-provider policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" />
diff --git a/nucleus/core/kernel/src/test/resources/DomainTest.xml b/nucleus/core/kernel/src/test/resources/DomainTest.xml
index 8d798cf..76ff4f4 100644
--- a/nucleus/core/kernel/src/test/resources/DomainTest.xml
+++ b/nucleus/core/kernel/src/test/resources/DomainTest.xml
@@ -39,7 +39,7 @@
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate"></auth-realm>
- <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
</jacc-provider>
<audit-module classname="com.sun.enterprise.security.ee.Audit" name="default">
diff --git a/nucleus/core/logging/src/test/resources/com/sun/enterprise/server/logging/parser/odl-server.log b/nucleus/core/logging/src/test/resources/com/sun/enterprise/server/logging/parser/odl-server.log
index aaf3643..eb6dc8b 100644
--- a/nucleus/core/logging/src/test/resources/com/sun/enterprise/server/logging/parser/odl-server.log
+++ b/nucleus/core/logging/src/test/resources/com/sun/enterprise/server/logging/parser/odl-server.log
@@ -15,7 +15,7 @@
[2012-10-19T15:33:27.610-0400] [AS] [NOTIFICATION] [] [null] [tid: _ThreadID=1 _ThreadName=main] [timeMillis: 1350675207610] [levelValue: 800] this.makeModuleFor(org.glassfish.web.javax.el, null) returned OSGiModuleImpl:: Bundle = [org.glassfish.web.javax.el [116]], State = [READY]
[2012-10-19T15:33:27.885-0400] [AS] [NOTIFICATION] [security.secmgroff] [javax.enterprise.system.core.security.com.sun.enterprise.security] [tid: _ThreadID=1 _ThreadName=main] [timeMillis: 1350675207885] [levelValue: 800] SEC1002: Security Manager is OFF.
[2012-10-19T15:33:27.886-0400] [AS] [NOTIFICATION] [sec.service.startup.enter] [javax.enterprise.system.core.security.com.sun.enterprise.security] [tid: _ThreadID=1 _ThreadName=main] [timeMillis: 1350675207886] [levelValue: 800] SEC1010: Entering Security Startup Service
-[2012-10-19T15:33:27.889-0400] [AS] [NOTIFICATION] [policy.loading] [javax.enterprise.system.core.security.com.sun.enterprise.security] [tid: _ThreadID=1 _ThreadName=main] [timeMillis: 1350675207889] [levelValue: 800] SEC1143: Loading policy provider com.sun.enterprise.security.provider.PolicyWrapper.
+[2012-10-19T15:33:27.889-0400] [AS] [NOTIFICATION] [policy.loading] [javax.enterprise.system.core.security.com.sun.enterprise.security] [tid: _ThreadID=1 _ThreadName=main] [timeMillis: 1350675207889] [levelValue: 800] SEC1143: Loading policy provider com.sun.enterprise.security.jacc.provider.SimplePolicyProvider.
[2012-10-19T15:33:27.915-0400] [AS] [NOTIFICATION] [sec.service.startup.exit] [javax.enterprise.system.core.security.com.sun.enterprise.security] [tid: _ThreadID=1 _ThreadName=main] [timeMillis: 1350675207915] [levelValue: 800] SEC1011: Security Service(s) Started Successfully
[2012-10-19T15:33:27.916-0400] [AS] [NOTIFICATION] [] [null] [tid: _ThreadID=1 _ThreadName=main] [timeMillis: 1350675207916] [levelValue: 800] Snifer com.sun.enterprise.security.ee.SecuritySniffer@389278a3 set up following modules: null
[2012-10-19T15:33:27.942-0400] [AS] [NOTIFICATION] [] [null] [tid: _ThreadID=1 _ThreadName=main] [timeMillis: 1350675207942] [levelValue: 800] Snifer org.glassfish.web.sniffer.WebSniffer@1ccb7 set up following modules: [OSGiModuleImpl:: Bundle = [org.glassfish.main.web.glue [190]], State = [READY], OSGiModuleImpl:: Bundle = [org.glassfish.web.javax.servlet.jsp [163]], State = [READY], OSGiModuleImpl:: Bundle = [org.glassfish.web.javax.el [116]], State = [READY]]
diff --git a/nucleus/core/logging/src/test/resources/com/sun/enterprise/server/logging/parser/uniform-server.log b/nucleus/core/logging/src/test/resources/com/sun/enterprise/server/logging/parser/uniform-server.log
index 039bcba..a23de09 100644
--- a/nucleus/core/logging/src/test/resources/com/sun/enterprise/server/logging/parser/uniform-server.log
+++ b/nucleus/core/logging/src/test/resources/com/sun/enterprise/server/logging/parser/uniform-server.log
@@ -122,7 +122,7 @@
[#|2012-10-19T15:27:30.058-0400|INFO|44.0|javax.enterprise.system.core.security.com.sun.enterprise.security|_ThreadID=72;_ThreadName=Thread-12;_TimeMillis=1350674850058;_LevelValue=800;_MessageID=sec.service.startup.enter;|SEC1010: Entering Security Startup Service|#]
-[#|2012-10-19T15:27:30.061-0400|INFO|44.0|javax.enterprise.system.core.security.com.sun.enterprise.security|_ThreadID=72;_ThreadName=Thread-12;_TimeMillis=1350674850061;_LevelValue=800;_MessageID=policy.loading;|SEC1143: Loading policy provider com.sun.enterprise.security.provider.PolicyWrapper.|#]
+[#|2012-10-19T15:27:30.061-0400|INFO|44.0|javax.enterprise.system.core.security.com.sun.enterprise.security|_ThreadID=72;_ThreadName=Thread-12;_TimeMillis=1350674850061;_LevelValue=800;_MessageID=policy.loading;|SEC1143: Loading policy provider com.sun.enterprise.security.jacc.provider.SimplePolicyProvider.|#]
[#|2012-10-19T15:27:30.140-0400|INFO|44.0|javax.enterprise.system.core.security.com.sun.enterprise.security|_ThreadID=72;_ThreadName=Thread-12;_TimeMillis=1350674850140;_LevelValue=800;_MessageID=sec.service.startup.exit;|SEC1011: Security Service(s) Started Successfully|#]
diff --git a/nucleus/security/core/src/main/java/com/sun/enterprise/security/cli/CreateJACCProvider.java b/nucleus/security/core/src/main/java/com/sun/enterprise/security/cli/CreateJACCProvider.java
index 427a331..dcb889e 100644
--- a/nucleus/security/core/src/main/java/com/sun/enterprise/security/cli/CreateJACCProvider.java
+++ b/nucleus/security/core/src/main/java/com/sun/enterprise/security/cli/CreateJACCProvider.java
@@ -57,7 +57,7 @@
*
*
* domain.xml element example
- * <jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
+ * <jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory">
* <property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy" />
* </jacc-provider>
*
diff --git a/nucleus/security/core/src/main/manpages/com/sun/enterprise/security/cli/create-jacc-provider.1 b/nucleus/security/core/src/main/manpages/com/sun/enterprise/security/cli/create-jacc-provider.1
index ca6f480..c0b2e9e 100644
--- a/nucleus/security/core/src/main/manpages/com/sun/enterprise/security/cli/create-jacc-provider.1
+++ b/nucleus/security/core/src/main/manpages/com/sun/enterprise/security/cli/create-jacc-provider.1
@@ -95,8 +95,8 @@
testJACC on the default server target.
asadmin> create-jacc-provider
- --policyproviderclass com.sun.enterprise.security.provider.PolicyWrapper
- --policyconfigfactoryclass com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl
+ --policyproviderclass com.sun.enterprise.security.jacc.provider.SimplePolicyProvider
+ --policyconfigfactoryclass com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory
testJACC
Command create-jacc-provider executed successfully.