3

我在配置 GF3.1.2 方面需要帮助,我已经完成了以下更改,如果我遗漏了任何重要内容,请告诉我,因为更改后它不起作用。我的身份证是 nilesh2811@gmail.com

如果有任何链接会有帮助,我在论坛中找不到任何特定的主题或答案。如果您对此有任何文件,请转发。

请只做那些需要的

web.xml

<login-config>
  <auth-method>CLIENT-CERT</auth-method>
</login-config>
<security-constraint>
  <web-resource-collection>
    <web-resource-name>Entire Application</web-resource-name>
    <url-pattern>/faces/*</url-pattern>
    <http-method>POST</http-method>
  </web-resource-collection>
  <auth-constraint>
    <description/>
    <role-name>authorized</role-name>
  </auth-constraint>
  <user-data-constraint>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </user-data-constraint>
</security-constraint>
<security-role>
  <description/>
  <role-name>authorized</role-name>
</security-role>

sun-web.xml

<security-role-mapping>
  <role-name>authorized</role-name>
  <principal-name>admin</principal-name>
  <group-name>authorized</group-name>
</security-role-mapping>

域.xml

<security-service>
  <auth-realm classname="com.sun.enterprise.security.auth.realm.file.FileRealm" name="admin-realm">
    <property name="file" value="${com.sun.aas.instanceRoot}/config/admin-keyfile"></property>
    <property name="jaas-context" value="fileRealm"></property>
  </auth-realm>
  <auth-realm classname="com.sun.enterprise.security.auth.realm.file.FileRealm" name="file">
    <property name="file" value="${com.sun.aas.instanceRoot}/config/keyfile"></property>
    <property name="jaas-context" value="fileRealm"></property>
  </auth-realm>
  <auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate">
    <property name="assign-groups" value="authorized"></property>
  </auth-realm>
4

4 回答 4

1

您的 web.xml 中的 login-config 部分不完整

<login-config>
    <auth-method>CLIENT-CERT</auth-method>
    <realm-name>certificate</realm-name>
</login-config>

领域名称内容必须与 domain.xml 中 auth-realm 元素的名称属性匹配,在您的情况下为“证书”

[更新]

此外,CA 证书必须导入服务器的信任库中

${com.sun.aas.instanceRoot}/config/cacerts.jks
于 2012-04-22T09:43:01.443 回答
1

实际上,我尝试使用 glassfish 3.1.2,它在以下条件下工作:

1.我必须在相同的位置使用相同的 jks 类型的密钥(信任)存储。为了与其他证书格式对话,您必须将它们转换为 jks 格式可以处理的格式。

2.在 glassfish-web.xml 你应该有这样的映射

    <security-role-mapping>
      <role-name>manager</role-name>   
    <group-name>authorized</group-name>
    </security-role-mapping>

3.在 domain.xml 文件中,您应该具有以下内容:

<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate">
              <property name="assign-groups" value="authorized"></property>
            </auth-realm> 

注意:在 web.xml 中,您必须有域名匹配 domain.xml 文件

于 2013-06-16T16:19:39.327 回答
0

当任何人第一次尝试时,他们需要时间来理解,简单来说,客户端和服务器信任库都应该相互信任证书,首先最好使用自签名证书与服务器和客户端交换证书,可以使用以下文章寻求帮助,其中简化了步骤。按照文章然后你可以使用你自己想要的方法证书。

http://www.slideshare.net/krizsan/scdjws-5-study-notes-3085287

SCDJWS 5 或现在称为 Oracle 认证专家、Java EE 5 Web 服务开发人员学习笔记,Ivan A Krizsan 版本:2012 年 2 月 23 日

于 2012-05-02T22:16:31.567 回答
0

Client Authentication: true

http-listener-2.

于 2013-12-20T14:31:44.720 回答