java - Spring Security 表单登录

标签 java html spring spring-boot spring-security

我在 src/main/webapp/my-login.html 下有带有自定义登录页面的 Spring Boot 应用程序。我配置 Spring Security 如下:

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().anyRequest().authenticated().and()
                .formLogin().loginPage("/my-login").permitAll().and()
                .csrf().disable();
    }
}

如何使 HTTP GET 到/my-login 返回我的 HTML 页面?我知道它被命名为“my-login.html”而不是简单的“my-login”,但是删除 .html 扩展名会让 Chrome 变得疯狂(它试图下载该文件......)。我尝试将 HTML 文件(带或不带扩展名)放在 src/main/webapp 或 src/main/resources/static 下。

另请注意,我没有使用 Thymeleaf,目标前端框架将是 AngularJS。我也对优雅的解决方案感兴趣(我认为我想要实现的目标非常简单)-我认为我使它与 loginPage("/my-login.html") 一起工作,但 REST 端点似乎不正确.

最佳答案

您可以设置 View Controller 将请求转发到 my-login.html...

@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/my-login").setViewName("forward:/my-login.html");
        registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
    }

}

关于java - Spring Security 表单登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42706295/

相关文章:

java - 聆听 3 个手指的手势?

java - 根据 HTML 十六进制颜色计算 ARGB 整数

Spring Boot 1.3 + OAuth : Authentication request failed: BadCredentialsException: Could not obtain access token

java - 当更新一个实体时, hibernate 尝试删除其他实体中的引用

java - 为什么泛型不能应用于相同的签名?

java - Logcat 多次重定向到文件

html - td 中的 CSS 样式复选框

html - 如何在网页上创建全 Angular 栏?

javascript - 如何在按钮:focus by jquery上添加Class()和removeClass()

java - Clob 对象数据为空