【问题标题】:How to use Spring Security form authentication without using JSP taglibs?如何在不使用 JSP 标签库的情况下使用 Spring Security 表单身份验证?
【发布时间】:2015-03-27 11:42:06
【问题描述】:

我没有使用 JSP 作为我的模板引擎,但我想使用 Spring Security(在 Spring Boot 中)。我使用 Handlebars for Java,它可以获取模型变量(就像 JSP 一样),但我没有 JSP taglib 来为我做接线。

我一直在寻找如何创建登录表单,但找不到太多。我不知道我应该将表单发布到哪个 URL,并且我认为有特殊的隐藏参数:在一个示例中,我看到了 _csrf.parameterName_csrf.token。但它们并没有出现在我的模板看到的模型中。

有没有办法做到这一点?

【问题讨论】:

  • 您需要使用 j_username 和 j_password 参数发布到 j_spring_security_check servlet。例如。 http:///j_spring_security_check?j_username=name&j_password=password.
  • 如果您使用带有默认设置的 Spring Security Java 配置,则不会(您应该使用用户名和密码发布到 /login)。
  • 我想您需要查看为您的模板创建模型的方式。 Spring Security 添加“_csrf”作为请求属性(这意味着它被添加到所有 Spring MVC 模板中,但您的模板必须有所不同)。

标签: spring spring-security spring-boot


【解决方案1】:

将此添加到您的 application.properties:

handlebars.exposeRequestAttributes=true

那么你应该可以像这样从你的模板访问:

<input type="hidden" name="{{_csrf.parameterName}}" value="{{_csrf.token}}"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    • 2015-02-06
    • 1970-01-01
    • 2016-08-12
    • 2011-06-04
    • 2016-09-09
    相关资源
    最近更新 更多