Агент OpenAm для tomcat не может прочитать URL-адрес службы авторизации?

amAuthContext:12.02.2014 04:58:20:946 下午 CST: Thread[main,5,main]

ОШИБКА: не удалось получить URL-адрес службы аутентификации с сервера: null://null:null

Я нашел его в "C:\tomcat_v6_agent\Agent_001\logs\debug"

И я уверен, что URL-адрес, который можно прочитать и посетить,

Это параметр в OpenSSOAgentConfiguration.properties.

com.iplanet.am.server.protocol=http

com.iplanet.am.server.host=gordon.demo.com

com.iplanet.am.server.port=8080

Он уже настроен в моей конфигурации DNS.

Теперь я не могу запустить свое приложение tomcat, но openam был в другом коте, который отлично работает. Env — это app tomcat в test.demo.com, порт 8086 openam tomcat в gordon.demo.com, порт 8080

И войти в tomcat так

org.apache.tomcat.util.digester.Digester startElement
SEVERE: Begin event threw error
java.lang.StackOverflowError
    at java.lang.String.indexOf(String.java:1698)
    at java.net.URLStreamHandler.parseURL(URLStreamHandler.java:272)
    at sun.net.www.protocol.file.Handler.parseURL(Handler.java:67)
    at java.net.URL.<init>(URL.java:614)
    at java.net.URL.<init>(URL.java:482)
    at sun.misc.URLClassPath$FileLoader.getResource(URLClassPath.java:1034)
    at sun.misc.URLClassPath$FileLoader.findResource(URLClassPath.java:1024)
    at sun.misc.URLClassPath.findResource(URLClassPath.java:172)
    at java.net.URLClassLoader$2.run(URLClassLoader.java:551)
    at java.net.URLClassLoader$2.run(URLClassLoader.java:549)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findResource(URLClassLoader.java:548)
    at java.lang.ClassLoader.getResource(ClassLoader.java:1138)
    at java.net.URLClassLoader.getResourceAsStream(URLClassLoader.java:227)
    at javax.xml.parsers.SecuritySupport$4.run(SecuritySupport.java:94)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.xml.parsers.SecuritySupport.getResourceAsStream(SecuritySupport.java:87)
    at javax.xml.parsers.FactoryFinder.findJarServiceProvider(FactoryFinder.java:275)
    at javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:247)
    at javax.xml.parsers.DocumentBuilderFactory.newInstance(DocumentBuilderFactory.java:121)
    at org.forgerock.util.xml.XMLUtils.getSafeDocumentBuilder(XMLUtils.java:52)
    at com.sun.identity.shared.xml.XMLUtils.getSafeDocumentBuilder(XMLUtils.java:901)
    at com.sun.identity.shared.xml.XMLUtils.toDOMDocument(XMLUtils.java:168)
    at com.sun.identity.shared.xml.XMLUtils.toDOMDocument(XMLUtils.java:146)
    at com.iplanet.services.comm.share.ResponseSetParser.<init>(ResponseSetParser.java:49)
    at com.iplanet.services.comm.share.ResponseSet.parseXML(ResponseSet.java:118)
    at com.iplanet.services.comm.client.PLLClient.send(PLLClient.java:214)
    at com.iplanet.services.comm.client.PLLClient.send(PLLClient.java:95)
    at com.iplanet.services.naming.WebtopNaming.getNamingTable(WebtopNaming.java:1156)
    at com.iplanet.services.naming.WebtopNaming.updateNamingTable(WebtopNaming.java:1192)
    at com.iplanet.services.naming.WebtopNaming.getNamingProfile(WebtopNaming.java:1109)
    at com.iplanet.services.naming.WebtopNaming.getServerID(WebtopNaming.java:696)
    at com.iplanet.services.naming.WebtopNaming.getServerID(WebtopNaming.java:621)
    at com.iplanet.services.naming.WebtopNaming.updatePlatformServerIDs(WebtopNaming.java:1302)
    at com.iplanet.services.naming.WebtopNaming.updateNamingTable(WebtopNaming.java:1226)
    at com.iplanet.services.naming.WebtopNaming.getNamingProfile(WebtopNaming.java:1109)
    at com.iplanet.services.naming.WebtopNaming.getServerID(WebtopNaming.java:696)
    at com.iplanet.services.naming.WebtopNaming.getServerID(WebtopNaming.java:621)
    at com.iplanet.services.naming.WebtopNaming.updatePlatformServerIDs(WebtopNaming.java:1302)
    at com.iplanet.services.naming.WebtopNaming.updateNamingTable(WebtopNaming.java:1226)
    at com.iplanet.services.naming.WebtopNaming.getNamingProfile(WebtopNaming.java:1109)
    at com.iplanet.services.naming.WebtopNaming.getServerID(WebtopNaming.java:696)
    at com.iplanet.services.naming.WebtopNaming.getServerID(WebtopNaming.java:621)
    at com.iplanet.services.naming.WebtopNaming.updatePlatformServerIDs(WebtopNaming.java:1302)
    at com.iplanet.services.naming.WebtopNaming.updateNamingTable(WebtopNaming.java:1226)
    at 

    at .........

    at com.iplanet.services.naming.WebtopNaming.updatePlatformServerIDs(WebtopNaming.java:1302)

person Gordon King    schedule 12.02.2014    source источник


Ответы (2)


Вам не нужно устанавливать

com.iplanet.am.server.protocol=http

com.iplanet.am.server.host=gordon.demo.com

com.iplanet.am.server.port=8080

«ОШИБКА: не удалось получить URL-адрес службы аутентификации с сервера: null://null:null»

не является настоящей ошибкой, API-интерфейс AuthContext, используемый агентом для получения токена приложения, откажется от службы именования OpenAM.

Установите уровень отладки на «сообщение» в OpenSSOAgentBootstrap.property, это должно дать вам представление о том, что не удается и почему.

person Bernhard Thalmayr    schedule 13.02.2014
comment
Благодарность! это работает, мое решение перейти к агенту j2ee 3.03~ - person Gordon King; 14.02.2014

Я наткнулся на этот пост в поисках решения той же ошибки.

В моем случае проблема заключалась в том, что Java 1.6 не поддерживает большие ключи шифрования. Я пропатчил JVM, чтобы использовать Bouncy Castle.

В java.security я установил их как номер 2 вместо «sun.security.rsa.SunRsaSign».

См. https://www.bouncycastle.org/specifications.html#install.

Поставщик также может быть настроен как часть вашей среды посредством статической регистрации путем добавления записи в файл свойств java.security (находится в $JAVA_HOME/jre/lib/security/java.security, где $JAVA_HOME — это расположение вашего JDK). /JRE). Вы найдете подробные инструкции в файле, но в основном все сводится к добавлению строки:

security.provider.N=org.bouncycastle.jce.provider.BouncyCastleProvider

Где N — это предпочтение, которое вы хотите получить от провайдера (1 — наиболее предпочтительный).

Куда вы поместите банку, в основном зависит от вас, хотя с jdk1.3 и jdk1.4 лучшее (и только в некоторых случаях) место для ее хранения — $JAVA_HOME/jre/lib/ext. Примечание. В Windows обычно устанавливаются JRE и JDK для установки Java, если вы считаете, что установили ее правильно, но она по-прежнему не работает, возможно, вы добавили поставщика к установке, которая не используется.

Примечание. В JDK 1.4 и более поздних версиях вам необходимо установить неограниченные файлы политик, чтобы в полной мере воспользоваться преимуществами поставщика. Если вы не установите файлы политики, вы, вероятно, получите что-то вроде следующего:

    java.lang.SecurityException: Unsupported keysize or algorithm parameters
            at javax.crypto.Cipher.init(DashoA6275)

Файлы политики можно найти там же, где вы скачали JDK.

person David Robson    schedule 05.03.2018