【问题标题】:How do I define a security realm in a JavaEE Stack in Cloudbees?如何在 Cloudbees 的 JavaEE 堆栈中定义安全领域?
【发布时间】:2013-02-10 13:09:43
【问题描述】:

我正在尝试在 CloudBees 的 JavaEE 堆栈中运行一个简单的 Web 应用程序。作为此应用程序的一部分,我定义了一个安全领域,即 DataSourceRealm

    <login-config>
    <auth-method>FORM</auth-method>
    <realm-name>ResmanRealm</realm-name>
    <form-login-config>
        <form-login-page>/welcome.xhtml</form-login-page>
        <form-error-page>/welcome.xhtml</form-error-page>
    </form-login-config>
</login-config>

到目前为止,我已经使用本地 Glassfish3 服务器编写了这个,我在其中针对 JDBC 资源定义了 ResmanRealm。在 Glassfish3-config-speak 中,最终看起来像这样

        <auth-realm classname="com.sun.enterprise.security.auth.realm.jdbc.JDBCRealm" name="ResmanRealm">
      <property name="jaas-context" value="jdbcRealm"></property>
      <property name="encoding" value="Hex"></property>
      <property name="password-column" value="password"></property>
      <property name="datasource-jndi" value="jdbc/ResManPool"></property>
      <property name="group-table" value="V_USER_ROLE"></property>
      <property name="user-table" value="USER"></property>
      <property name="group-name-column" value="role"></property>
      <property name="digest-algorithm" value="SHA-256"></property>
      <property name="user-name-column" value="name"></property>
    </auth-realm>

所以,这一切都在本地工作。我在 Cloudbees 中看到,有一个 cloudbees xml 文件,doco 声明它是遗留的,但看起来它对此有某种形式的支持。我找不到任何关于如何将安全领域定义为配置参数的示例。看起来 if 可能是一种资源(在 CloudBees 中),您可以在将数据库绑定到应用程序时定义它。但是,一个例子会很好,因为现有的资源示例(至少我能找到的)有点笼统。

另外,我的(当前不成功的)应用程序启动的输出日志没有显示 DataSourceRealms 正在加载?

[#|2013-02-25T11:03:51.319+0000|INFO|glassfish3.1.2|javax.enterprise.system.core.security.com.sun.enterprise.security|_ThreadID=12;_ThreadName=AutoDeployer;|SEC1010: Entering Security Startup Service|#]

[#|2013-02-25T11:03:51.333+0000|INFO|glassfish3.1.2|javax.enterprise.system.core.security.com.sun.enterprise.security|_ThreadID=12;_ThreadName=AutoDeployer;|SEC1143: Loading policy provider com.sun.enterprise.security.provider.PolicyWrapper.|#]

[#|2013-02-25T11:03:51.452+0000|INFO|glassfish3.1.2|javax.enterprise.system.core.security.com.sun.enterprise.security.auth.realm|_ThreadID=12;_ThreadName=AutoDeployer;|SEC1115: Realm [admin-realm] of classtype [com.sun.enterprise.security.auth.realm.file.FileRealm] successfully created.|#]

[#|2013-02-25T11:03:51.461+0000|INFO|glassfish3.1.2|javax.enterprise.system.core.security.com.sun.enterprise.security.auth.realm|_ThreadID=12;_ThreadName=AutoDeployer;|SEC1115: Realm [file] of classtype [com.sun.enterprise.security.auth.realm.file.FileRealm] successfully created.|#]

[#|2013-02-25T11:03:51.483+0000|INFO|glassfish3.1.2|javax.enterprise.system.core.security.com.sun.enterprise.security.auth.realm|_ThreadID=12;_ThreadName=AutoDeployer;|SEC1115: Realm [certificate] of classtype [com.sun.enterprise.security.auth.realm.certificate.CertificateRealm] successfully created.|#]

[#|2013-02-25T11:03:51.498+0000|INFO|glassfish3.1.2|javax.enterprise.system.core.security.com.sun.enterprise.security|_ThreadID=12;_ThreadName=AutoDeployer;|SEC1011: Security Service(s) Started Successfully|#]

因此,如果有人成功地在 CloudBees 中的 JavaEE 堆栈中定义 DataSourceRealms,我将不胜感激任何朝着正确方向的推动。感谢您提供任何信息。

【问题讨论】:

    标签: jaas cloudbees


    【解决方案1】:

    CloudBees 现在支持 Glassfish3 和 Glassfish4 堆栈上的 JaaS 身份验证和安全领域,如下所述:

    请注意,Glassfish3 和 Glassfish4 的 CloudBees 安全领域完全基于 JdbcRealms,这似乎是您的需要。

    【讨论】:

    • 耶!棒极了!谢谢!
    • 非常延迟的响应,但我刚回到这个并让它工作。太棒了!谢谢!!!
    【解决方案2】:

    基于容器的身份验证在 CloudBees 堆栈上不可用,但由于遗留原因而在 tomcat6 上可用。首选方法是使用安全框架(spring-security 或任何其他)来检测应用程序

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-19
      • 1970-01-01
      • 1970-01-01
      • 2017-02-27
      • 2011-01-04
      • 2016-10-04
      • 2013-01-30
      • 1970-01-01
      相关资源
      最近更新 更多