Openam and OpenDJ Integration issue: authorization failure

477 views Asked by At

I am using openam12 and opendj2.6 version to configure single sign on.

While trying to make openam12 and opendj2.6 communicate I am getting the following exception:

[error] handleException: java.lang.RuntimeException: Error occurred invoking public method: public boolean com.sun.identity.config.wizard.Wizard.createConfig()
    at org.apache.click.util.ClickUtils.invokeMethod(ClickUtils.java:3335)
    at org.apache.click.util.ClickUtils.invokeListener(ClickUtils.java:2088)
    at org.apache.click.control.AbstractControl$1.onAction(AbstractControl.java:228)
    at org.apache.click.ActionEventDispatcher.fireActionEvent(ActionEventDispatcher.java:259)
    at org.apache.click.ActionEventDispatcher.fireActionEvents(ActionEventDispatcher.java:236)
    at org.apache.click.ActionEventDispatcher.fireActionEvents(ActionEventDispatcher.java:180)
    at org.apache.click.ClickServlet.performOnProcess(ClickServlet.java:746)
    at org.apache.click.ClickServlet.processAjaxPageEvents(ClickServlet.java:1860)
    at org.apache.click.ClickServlet.processPage(ClickServlet.java:559)
    at org.apache.click.ClickServlet.handleRequest(ClickServlet.java:383)
    at org.apache.click.ClickServlet.doGet(ClickServlet.java:276)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.forgerock.openam.validation.ResponseValidationFilter.doFilter(ResponseValidationFilter.java:44)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.sun.identity.setup.AMSetupFilter.doFilter(AMSetupFilter.java:113)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1521)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1478)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ExceptionInInitializerError
    at com.sun.identity.setup.ConfigureData.createPolicies(ConfigureData.java:166)
    at com.sun.identity.setup.ConfigureData.createRealmAndPolicies(ConfigureData.java:118)
    at com.sun.identity.setup.ConfigureData.configure(ConfigureData.java:99)
    at com.sun.identity.setup.AMSetupServlet.processDataRequests(AMSetupServlet.java:1650)
    at com.sun.identity.setup.AMSetupServlet.configure(AMSetupServlet.java:1127)
    at com.sun.identity.setup.AMSetupServlet.processRequest(AMSetupServlet.java:693)
    at com.sun.identity.config.wizard.Wizard.createConfig(Wizard.java:304)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.click.util.ClickUtils.invokeMethod(ClickUtils.java:3317)
    ... 39 more
Caused by: com.sun.identity.log.AMLogException: amPolicy.access:Log write authorization failure
    at com.sun.identity.log.Logger.validateLogBy(Logger.java:291)
    at com.sun.identity.log.Logger.log(Logger.java:363)
    at com.sun.identity.log.Logger.logStartRecord(Logger.java:564)
    at com.sun.identity.log.Logger.getLogger(Logger.java:471)
    at com.sun.identity.policy.PolicyUtils.<clinit>(PolicyUtils.java:105)
    ... 51 more
2

There are 2 answers

1
Kalem On BEST ANSWER

from your stacktrace :

Caused by: com.sun.identity.log.AMLogException: amPolicy.access:Log write authorization failure

Which mean that openAm try to log on it's installation dir but didnt have enough access rights to that dir (on windows usually "C:\openam\openam\log"). So maybe try to check this first.

Hope it helps

0
Gouranga Tarafder On

I have spent hours to resolve this problem. This failure can happen for different reason. Like :

  1. user who is running tomcat doesn't have proper permission to the configuration folder / directory (as mentioned by Kalem in above solution)

  2. hostname is not configured properly

For me it was hostname issue, I was using linux (opensuse) and configured /etc/hosts. But if I try to see :~> hostname it was returning some other value. So I had changed the /etc/HOSTNAME file which the same hostname I mentioned in /etc/hosts file. And it worked :)