1

我正在尝试将图像添加到我的身份验证表单中,但安全凭据使其无法显示,即使该图像不是受限 URL 的一部分。

我是否对阻止我所有页面的安全描述符做错了什么?

这是我的 web.xml

<security-constraint>
    <display-name>activedir</display-name>
    <web-resource-collection>
        <web-resource-name>activedir</web-resource-name>
        <description/>
        <url-pattern>/activedir/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <description/>
        <role-name>USER</role-name>
        <role-name>ADMIN</role-name>
    </auth-constraint>
    <user-data-constraint>
        <description/>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>
<login-config>
    <auth-method>FORM</auth-method>
    <realm-name>security</realm-name>
    <form-login-config>
        <form-login-page>/login/login.html</form-login-page>
        <form-error-page>/login/error.html</form-error-page>
    </form-login-config>
</login-config>
<security-role>
    <description/>
    <role-name>USER</role-name>
</security-role>
<security-role>
    <description/>
    <role-name>ADMIN</role-name>
</security-role>

这是我的 glassfish-web.xml

<security-role-mapping>
   <role-name>ADMIN</role-name>
   <group-name>ADMIN</group-name>
<security-role-mapping>
   <role-name>ADMIN</role-name>
   <group-name>ADMIN</group-name>
</security-role-mapping>
 <security-role-mapping>
    <role-name>USER</role-name>
    <group-name>USER</group-name>
  </security-role-mapping>
 <class-loader delegate="true"/>
   <jsp-config>
   <property name="keepgenerated" value="true">
    <description>Keep a copy of the generated servlet class' java code.</description>
    </property>
 </jsp-config>

我的文件夹树如下:

  • 活动目录

    • 索引.jsp
    • 结果.jsp
  • 登录

    • 登录.html
    • 错误.html
    • 标志.png
    • 样式.css

现在,当我进行身份验证时,它不会返回到我请求的网页,而是会重定向到图像。

我在这里做错了吗?

谢谢您的帮助!

4

2 回答 2

0

尝试允许任何人读取登录目录

<security-constraint>     
   <display-name>login</display-name>     
   <web-resource-collection>         
       <web-resource-name>login</web-resource-name>         
          <description/>         
          <url-pattern>/login/*</url-pattern>     
   </web-resource-collection>     
   <auth-constraint>         
       <description/>         
       <role-name>*</role-name>
   </auth-constraint>     
   <user-data-constraint>         
       <description/>         
       <transport-guarantee>CONFIDENTIAL</transport-guarantee>     
   </user-data-constraint> 
</security-constraint> 
于 2012-10-16T02:05:03.630 回答
0

通过定义图像 URL 的完整路径,我能够在 Glassfish 4 上基于表单的登录页面中显示图像:

<img src="/login/img/html5.png" /> <-- no Image
<img src="https://localhost:8181/App/login/img/html5.png"/> <-- Image!

请勿按照 rorrohprog 的建议将 web.xml 中的安全约束添加到登录目录(此问题的其他答案)。没有对文件夹的约束设置允许每个人都可以从中读取。

于 2014-08-25T20:01:23.210 回答