首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >野蝇web应用程序SSO (单点登录)/图书推荐

野蝇web应用程序SSO (单点登录)/图书推荐
EN

Stack Overflow用户
提问于 2014-02-28 16:34:16
回答 4查看 3.6K关注 0票数 4

我有一个通配符8.0,最后运行,但我不能让我的野蝇做一个SSO。在IBM时代,我不得不定义web应用程序SSO。但是在通配符下,我不知道如何做到这一点,也不知道如何启用/配置它。

我对应用程序的打包如下:

myapp.ear:

  • web.war (上下文: /web,用于web服务)
  • gui.war (上下文: /gui,用于最终用户)
  • additional.war

通常,用户在gui.war上工作。在这里,用户获得一个基于表单的auth (它已经正常工作),web.war用于外部系统,这些系统通常使用基于表单的auth来执行基本的auth additional.war。

现在,每个战争文件的每个版本都如预期的那样工作。但我必须对每一个战争档案都做个调查,即使我已经通过了认证。因此,我的问题是,如何在通配符上启用web应用程序SSO (单点登录)?请记住,我对野蝇完全陌生,当然JBoss也是。所以我需要纽比的配置文件。

有人能给我推荐一本关于野蝇的好书吗?这本书能更详细地解释这些特性吗?

再见汉斯

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-09-10 05:57:32

当前的解决方法是在所有战争的jboss-web.xml中包含以下内容:

代码语言:javascript
复制
<?xml version="1.0"?>
<jboss-web>
    <session-config>
       <cookie-config>
          <path>/</path>
       </cookie-config>
    </session-config>
</jboss-web>
<xml>
票数 3
EN

Stack Overflow用户

发布于 2014-03-21 15:43:11

不幸的是,由于通配符8.0.0中的域错误,这是一个很长的答案。这个答案适用于绕过bug --几乎可以肯定它有一个更简单的变体,但我对野蝇扩展还不太熟悉。

在standalone.xml (或domain.xml等效)中添加子系统、服务器、主机标签--不管域是什么。

在您的war文件中,添加:

代码语言:javascript
复制
WEB-INF/classes/META-INF/services/io.undertow.servlet.ServletExtension

内容:

代码语言:javascript
复制
FixSSOServletExtension

让这个类用一行实现ServletExtension:

代码语言:javascript
复制
deploymentInfo.addFirstAuthenticationMechanism("form",  new FixSSOAuthenticationMechanism());

(将表单更改为basic或任何您使用的内容)

在FixSSOAuthenticationMechanism.authenticate中:

代码语言:javascript
复制
exchange.addResponseWrapper(responseListener);
return AuthenticationMechanismOutcome.NOT_ATTEMPTED;

(在另一种方法中,只返回新的ChallengeResult(false) )

添加:

代码语言:javascript
复制
final class ResponseListener implements ConduitWrapper<StreamSinkConduit> {
        public StreamSinkConduit wrap(ConduitFactory<StreamSinkConduit> factory, HttpServerExchange exchange) {
            Cookie c = exchange.getResponseCookies().get("JSESSIONIDSSO");
            if( c!=null ) {
                c.setDomain(null);
            }
            return factory.create();
        }
    }

并在类中创建该实例的实例以返回。

添加到JBos-Deployment-structure.xml中

代码语言:javascript
复制
<module name="io.undertow.core" />
<module name="io.undertow.servlet" />
<module name="org.jboss.xnio" />

您只需要在登录到的war文件中执行此操作--但是如果您可以登录多个位置,那么在任何地方都需要它,如果需要,可以将其放入共享模块或sar模块(我的副本位于sar中,因为那里部署了一个现有的安全mbean )。

票数 0
EN

Stack Overflow用户

发布于 2014-03-21 15:49:08

在下面编辑SignleSignOnAuthenticationMechanism.java,并删除方法调用:setDomain(域),重新编译该模块并在您的通配符目录中替换它。我认为这是https://issues.jboss.org/browse/WFLY-3033中的修复(除了域将取决于是否添加它)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22100686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档