Настройка примера веб-контекста с помощью JOSSO + TOMCAT - PullRequest
0 голосов
/ 20 января 2012

Новичок в JOSSO.Я настроил JOSSO с tomcat, и partnerapp, кажется, работает правильно.У меня есть «образец» веб-приложения, которое я пытаюсь настроить с помощью JOSSO.Страница входа в JOSSO правильно отображается, когда я пытаюсь получить доступ к веб-приложению, однако после успешного входа в систему я получаю следующее исключение

java.lang.RuntimeException: Outbound relaying failed. No Principal found. Verify your SSO Agent Configuration!
    org.josso.tc60.agent.SSOAgentValve.invoke(SSOAgentValve.java:551)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    java.lang.Thread.run(Thread.java:722)

Я добавил запись приложения-партнера в josso-agent-config.xml.

<agent:partner-app id="MySampleApp" context="/sample"/>

Мой web.xml выглядит следующим образом

...
    <welcome-file-list id="WelcomeFileList">
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

    <security-constraint>
        <!-- Sample Security Constraint -->
        <web-resource-collection>

            <!-- We're going to protect this resource and make it available only to users in "role1". -->
            <web-resource-name>protected-resources</web-resource-name>

            <url-pattern>/*</url-pattern>

            <http-method>HEAD</http-method>
            <http-method>GET</http-method>
            <http-method>POST</http-method>
            <http-method>PUT</http-method>
            <http-method>DELETE</http-method>

        </web-resource-collection>

        <!-- NOTE: This role names will be retrieved by Josso using the proper identity store. -->
        <auth-constraint>
            <role-name>role1</role-name>
        </auth-constraint>

        <user-data-constraint>
            <transport-guarantee>NONE</transport-guarantee>
        </user-data-constraint>

    </security-constraint>  

    <security-role >
        <description>Role 1</description>
        <role-name>role1</role-name>
    </security-role>

    <login-config>

        <auth-method>FORM</auth-method>

        <form-login-config>
            <!--
            NOTE: This will redirect the user to the proper login page provided by JOSSO.
            -->
            <form-login-page>/login-redirect.jsp</form-login-page>
            <form-error-page>/login-redirect.jsp</form-error-page>


        </form-login-config>

    </login-config>
...

Создан файл sample.xml в каталоге c: \ tomcat_dir \ conf \ Catlina \ localhost, который выглядит следующим образом

<Context docBase="${catalina.home}/webapps/sample" privileged="true" antiResourceLocking="true" antiJARLocking="true">
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
</Context>

Буду признателен за любые отзывы по этому вопросу.

Перекрестное размещение на форуме JOSSO

1 Ответ

0 голосов
/ 09 февраля 2015

Вы должны указать jaas.conf файл при инициализации tomcat, добавив следующий параметр в Arguments VM (если вы используете Eclipse):

-Djava.security.auth.login.config=D:\apache-tomcat-7.0.54-josso\conf\jaas.conf

Этот файл должен иметь следующее содержимое:

josso {
  org.josso.tc70.agent.jaas.SSOGatewayLoginModule required debug=true;
};

Я использую Tomcat, управляемый Eclipse IDE, поэтому я включил вышеупомянутую конфигурацию в Конфигурация сервера (Просмотр серверов) / Открыть конфигурацию запуска / Аргументы / Аргументы виртуальной машины. Однако, если вы конфигурируете автономную установку tomcat, зайдите в% TOMCAT_HOME $ / bin / scripts e и проверьте, какой jaas.conf использует tomcat, и обновите его с помощью содержимого, показанного выше. Я надеюсь, что это работает для вас!

...