[GLASSFISH-20692] The message "jaccfactory.notfound" in WebSecurityManager is not defined in the property File. Created: 10/Jul/13  Updated: 19/Sep/14

Status: Open
Project: glassfish
Component/s: security
Affects Version/s: 4.0_b89_RC5
Fix Version/s: 4.1

Type: Bug Priority: Major
Reporter: xianwu Assignee: JeffTancill
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

OS
Windows 7 Enterprise (Service Pack 1)

JDK
java version "1.7.0_11"
Java(TM) SE Runtime Environment (build 1.7.0_11-b21)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)



 Description   

Reproducible operational steps:

asadmin set server.security-service.jacc=h.b.aaaa

asadmin restart-domain

You can see the message below in the server.log

[2013-07-10T13:03:28.431+1000] [glassfish 4.0] [SEVERE] [] [javax.enterprise.system.core.security] [tid: _ThreadID=83 _ThreadName=Thread-15] [timeMillis: 1373425408431] [levelValue: 1000] [[
jaccfactory.notfound]]

Issues:
"jaccfactory.notfound" is not appropriate as the message logged in server.log.

Detailed description of the issue:

The message is logged by WebSecurityManager
(https://svn.java.net/svn/glassfish~svn/branches/4.0/appserver/security/core-ee/src/main/java/com/sun/enterprise/security/web/integration/WebSecurityManager.java) as shown below

public class WebSecurityManager {
private static final Logger logger =
Logger.getLogger(LogDomains.SECURITY_LOGGER);
/** lines ignored **/
private synchronized PolicyConfigurationFactory _getPolicyFactory()
throws PolicyContextException {
if (pcf == null) {
try

{ pcf = PolicyConfigurationFactory.getPolicyConfigurationFactory(); }

catch(ClassNotFoundException cnfe)

{ logger.severe("jaccfactory.notfound"); throw new PolicyContextException(cnfe); }

catch(PolicyContextException pce)

{ logger.severe("jaccfactory.notfound"); throw pce; }

}
return pcf;
}
/** lines ignored **/
}

However, the message "jaccfactory.notfound" is not defined in LogStrings.properties
(https://svn.java.net/svn/glassfish~svn/branches/4.0/nucleus/security/core/src/main/resources/com/sun/logging/enterprise/system/core/security/LogStrings.properties) for WebSecurityManager .

I think the message "jaccfactory.notfound" should be defined in LogStrings.properties for WebSecurityManager.

Below is a sample from EJBSecurityManager which has situation.
The message "jaccfactory.notfound" is defined in LogStrings.properties (https://svn.java.net/svn/glassfish~svn/branches/4.0/appserver/ejb/ejb-container/src/main/resources/com/sun/logging/enterprise/system/container/ejb/LogStrings.properties)
for EJBSecurityManager (https://svn.java.net/svn/glassfish~svn/branches/4.0/appserver/ejb/ejb-container/src/main/java/org/glassfish/ejb/security/application/EJBSecurityManager.java).



 Comments   
Comment by xianwu [ 10/Jul/13 ]

Sorry, there is a typo

"Below is a sample from EJBSecurityManager which has situation." =>
"Below is a sample from EJBSecurityManager which has a similar situation."

Comment by xianwu [ 23/Jul/13 ]

Hi Jeff

The problem is not fixed in 4.0.1 (b02-07_22_2013 build).

To reproduce the problem, you need to start GF Server Admin Console. Below are modified steps.

Reproducible operational steps:

asadmin start-domain

asadmin set server.security-service.jacc=h.b.aaaa

asadmin stop-domain

asadmin start-domain

You can see the message below in the server.log

[2013-07-23T13:44:01.478+1000] [glassfish 4.0] [SEVERE] [] [javax.enterprise.system.core.security] [tid: _ThreadID=114 _ThreadName=Thread-18] [timeMillis: 1374551041478] [levelValue: 1000] [[
jaccfactory.notfound]]

[2013-07-23T13:44:01.478+1000] [glassfish 4.0] [SEVERE] [NCLS-CORE-00026] [javax.enterprise.system.core] [tid: _ThreadID=114 _ThreadName=Thread-18] [timeMillis: 1374551041478] [levelValue: 1000] [[
Exception during lifecycle processing
org.glassfish.deployment.common.DeploymentException: Error in generating security policy for __admingui – javax.security.jacc.PolicyContextException: java.lang.ClassNotFoundException: JACC:Error PolicyConfigurationFactory : cannot find class : null
at com.sun.enterprise.security.web.integration.WebSecurityManagerFactory.createManager(WebSecurityManagerFactory.java:305)
at com.sun.enterprise.security.ee.SecurityDeployer.loadPolicy(SecurityDeployer.java:234)
at com.sun.enterprise.security.ee.SecurityDeployer.access$000(SecurityDeployer.java:87)
at com.sun.enterprise.security.ee.SecurityDeployer$AppDeployEventListener.event(SecurityDeployer.java:135)
at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131)
at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:233)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:313)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:493)
at com.sun.enterprise.v3.server.ApplicationLoaderService.processApplication(ApplicationLoaderService.java:406)
at com.sun.enterprise.v3.admin.adapter.InstallerThread.load(InstallerThread.java:211)
at com.sun.enterprise.v3.admin.adapter.InstallerThread.run(InstallerThread.java:100)
]]

start GF Server Admin Console (http://localhost:4848/common/index.jsf)

Can you please reopen it to further investigate?

Regards, Xianwu

Comment by xianwu [ 23/Jul/13 ]

Hi Jeff

Sorry, I inserted server.log in a wrong block.

Here is the correction.

Reproducible operational steps:

asadmin start-domain

asadmin set server.security-service.jacc=h.b.aaaa

asadmin stop-domain

asadmin start-domain

start GF Server Admin Console (http://localhost:4848/common/index.jsf)

You can see the message below in the server.log

[2013-07-23T13:44:01.478+1000] [glassfish 4.0] [SEVERE] [] [javax.enterprise.system.core.security] [tid: _ThreadID=114 _ThreadName=Thread-18] [timeMillis: 1374551041478] [levelValue: 1000] [[
jaccfactory.notfound]]

[2013-07-23T13:44:01.478+1000] [glassfish 4.0] [SEVERE] [NCLS-CORE-00026] [javax.enterprise.system.core] [tid: _ThreadID=114 _ThreadName=Thread-18] [timeMillis: 1374551041478] [levelValue: 1000] [[
Exception during lifecycle processing
org.glassfish.deployment.common.DeploymentException: Error in generating security policy for __admingui – javax.security.jacc.PolicyContextException: java.lang.ClassNotFoundException: JACC:Error PolicyConfigurationFactory : cannot find class : null
at com.sun.enterprise.security.web.integration.WebSecurityManagerFactory.createManager(WebSecurityManagerFactory.java:305)
at com.sun.enterprise.security.ee.SecurityDeployer.loadPolicy(SecurityDeployer.java:234)
at com.sun.enterprise.security.ee.SecurityDeployer.access$000(SecurityDeployer.java:87)
at com.sun.enterprise.security.ee.SecurityDeployer$AppDeployEventListener.event(SecurityDeployer.java:135)
at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131)
at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:233)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:313)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:493)
at com.sun.enterprise.v3.server.ApplicationLoaderService.processApplication(ApplicationLoaderService.java:406)
at com.sun.enterprise.v3.admin.adapter.InstallerThread.load(InstallerThread.java:211)
at com.sun.enterprise.v3.admin.adapter.InstallerThread.run(InstallerThread.java:100)
]]

Can you please reopen it to further investigate?

Regards, Xianwu

Generated at Sat Feb 28 15:57:36 UTC 2015 using JIRA 6.2.3#6260-sha1:63ef1d6dac3f4f4d7db4c1effd405ba38ccdc558.