我正在为Web应用程序使用springBoot和spring secility,我的用户登录在默认登录页面上运行良好,如果我使用自定义login.html和以下代码,也可以运行.

 http.formLogin(form ->{
            form.loginPage("/login").permitAll();
            form.defaultSuccessUrl("/files");

但如果我设定一条不同的道路,就像:

form.loginPage("/signin").permitAll();

Controller for "Custom" Login URL:

 @GetMapping("/signin")
    public String getSingIn(Model model){

        model.addAttribute("user", UserDTO.builder().build());

        return "login";


    }

登录表单可以使用,但我无法对其进行授权.我只是再次重定向到登录页面("/sign")

<body>
<h1>Please Log In</h1>

<form method="POST"   th:action="@{'/login'}">
  <div>
    <input type="text" name="username" id="username" placeholder="Username" />
  </div>
  <div>
    <input type="password" name="password" id="password" placeholder="Password" />
  </div>
  <input type="submit" value="Log in" />
</form>
</body>
</html>

我只是想知道我是否做错了什么,或者是否必须始终/登录表格?

推荐答案

在您的情况下,您正在try 使用自定义登录路径,该路径不是静态页面,而是MVURL.在这种情况下,我猜spring start假设登录处理URL与formlogin配置中提供的自定义MVURL相同.

因此,您必须告诉spring Boot保持登录处理URL与默认URL相同,或者您也可以自定义它. 在您的情况下,修改后的Spring安全配置如下:-

 http.formLogin(form ->{
        form.loginPage("/signin").loginProcessingUrl("/login").permitAll();
        form.defaultSuccessUrl("/files");

相反,您还可以 Select 将表单登录Post路径更改为:- <form method="POST" th:action="@{'/signin'}">

Java相关问答推荐

JPackage-results已安装-如何添加系统属性?

Java中后期绑定的替代概念

使用联接和分页的SpringBoot Spring数据JPA

为什么我的ArrayList索引的索引总是返回-1?

如何获得执行人?

对Java中的通配符参数的混淆

使用Spring Boot3.2和虚拟线程的并行服务调用

Com.google.firebase.database.DatabaseException:无法将类型为java.lang.Boolean的值转换为字符串.这是关于什么的?

Jenv-相同的Java版本,但带有前缀

如何为JavaFX Spring Boot应用程序制作Windows/MacOS/Linux安装程序

垃圾收集时间长,会丢弃网络连接,但不会在Kubernetes中反弹Pod

IntelliJ IDEA中的JavaFX应用程序无法在资源中找到CSS文件

无法使用Open WebStart Java 8运行jnlp

无法在Java中获取ElastiCache的AWS CloudWatch指标

PhantomReference无法访问时会发生什么?

如何以事务方式向ibmmq发送消息

如何在更改分辨率时将鼠标坐标计算为世界坐标

转换为JSON字符串时,日期按天递减-Java

如何在java中从以百分比表示的经过时间和结束日期中找到开始日期

人们在 IntelliJ 上将-Dhttp.proxyHost=your.proxy.net -Dhttp.proxyPort=8080放在哪里?