【问题标题】:Seam FORM problem接缝形式问题
【发布时间】:2011-08-25 21:38:25
【问题描述】:

我有一个简单的表单方法...

<form method="POST" action="j_security_check">
    <table>
        <tr>
            <td>Name:</td>
            <td><input type="text" name="j_username" /></td>
        </tr>
        <tr style="margin-top: 10px;">
            <td>Password:</td>
            <td><input type="password" name="j_password" /></td>
        </tr>
        <tr>
            <td colspan="2"><input type="submit" value="Go" /></td>
        </tr>                   
    </table>
</form>

此页面位于login.xhtml

当用户输入错误信息时,它会将我重新路由到j_security_check.html,当它输入时,它会丢失所有样式。有没有办法解决这个问题?

出现登录的资源:

<login-config>
    <auth-method>CLIENT-CERT,FORM</auth-method>
    <form-login-config>
        <form-login-page>/login.seam</form-login-page>
        <form-error-page>/login.seam</form-error-page>
    </form-login-config>
</login-config>

此外,可访问的数据是:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Accessible Data</web-resource-name>
        <url-pattern>/login</url-pattern>
        <url-pattern>/a4j/*</url-pattern>
        <url-pattern>/css/*</url-pattern>
        <url-pattern>/img/*</url-pattern>
    </web-resource-collection>
</security-constraint>

当我查看视图源内部时,似乎登录页面源已加载所有 CSS 和属性,但 j_security_check 页面没有。

有什么想法吗?

【问题讨论】:

  • 那你能发布 j_security_check.html 文件吗?为什么它没有样式?
  • 为这两个文件提供所有的 HTML。
  • 在 j_security_check html 中包含相同的样式表。或者...包括更多细节。
  • 您的 css 很可能在一个单独的文件中,并且往返会弄乱 css 文件的路径。您可以签入 Firebug 或类似文件以查看用于尝试获取 css 文件的路径。
  • 对不起,不是真的。您的 css 文件是安全的,这看起来有点奇怪,因为它们在用户登录之前无法工作。您确实需要在 firebug 中跟踪 http 以查看 css 请求和响应发生了什么。请求是否发送?他们返回 200 还是 404 状态码。如果是 200,文件中有什么? (顺便说一句,如果您想让某人知道您已回复评论,请在回复中将@放在他们的用户名之前 - 例如@Alohci)

标签: java servlets seam web.xml


【解决方案1】:

表单上的action="j_security_check" 属性保证他提交按钮会将您发送到j_security_check。您可能想要做的是让您的 j_security_check 处理程序重定向回login.xhtml,让用户再次尝试输入他们的凭据。

【讨论】:

  • hmm 那怎么做呢?我是否要创建一个 j_security_check.html 来将我重定向回 l​​ogin.xhtml?
  • 好吧,为了让用户登录,您可能需要一个服务器组件来检查数据库中的用户名/密码。完全在 HTML 中执行此操作的好选择并不多。是否有像 PHP 或 Django 之类的服务器技术或您正在构建的任何东西?
  • @sblom - 服务器技术几乎肯定是 Java。 Tomcat 或类似的 servlet 容器。 j_security_check 是容器的一部分。如果容器配置(web.xml)设置正确,如果登录凭据不满意,它将把请求转发回登录页面。
  • alohci 是正确的。它是 web.xml,但我的错误和登录页面都设置为 login.xhtml ......奇怪的是。当您登录无效时,您将被重定向到某种 j_security_check 页面。有什么想法吗?
【解决方案2】:

http://www.coderanch.com/t/448131/JSF/java/forms-authentication-security-check-JSF有答案

如果您正在执行 j_Security_check,则无法使用 JSF 设置页面样式

【讨论】:

  • 它对我有用。您的问题是由其他原因引起的。太糟糕了,您没有从一开始就使用jsf 标记这个问题并给它一个糟糕的标题。我完全错过了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-19
  • 1970-01-01
相关资源
最近更新 更多