我有一个spring boot项目,后来开始使用spring security来保护一些API端点,使用spring安全实现的默认登录页面进行身份验证很顺利,但是现在我必须实现一个自定义登录页面。
我正在尝试按照本教程:http://docs.spring.io/spring-security/site/docs/4.2.2.RELEASE/guides/html5/form-javaconfig.html
但我发现自己无法正确显示自定义表单。
我很确定这是因为我没有定义任何模板解析器,但公平地说,即使我已阅读的所有示例,我仍然无法弄清楚如何。 所以我在这里使用:
SecurityConfig 中的
@Override
protected void configure(final HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeRequests()
.antMatchers("/resources/**").permitAll()
.antMatchers("/api/survey/report/**").hasRole(ADMIN_ROLE)
.and().formLogin().loginPage("/login")
.and().logout();
}
}
自定义和新创建的登录控制器
@Controller
public class LoginController {
@RequestMapping("/login")
public String login(){return "login";}
}
login.htm 作为指南:
<html xmlns:th="http://www.thymeleaf.org">
<head th:include="layout :: head(title=~{::title},links=~{})">
<title>Please Login</title>
</head>
<body th:include="layout :: body" th:with="content=~{::content}">
<div th:fragment="content">
<form name="f" th:action="@{/login}" method="post">
<fieldset>
<legend>Please Login</legend>
<div th:if="${param.error}" class="alert alert-error">
Invalid username and password.
</div>
<div th:if="${param.logout}" class="alert alert-success">
You have been logged out.
</div>
<label for="username">Username</label>
<input type="text" id="username" name="username"/>
<label for="password">Password</label>
<input type="password" id="password" name="password"/>
<div class="form-actions">
<button type="submit" class="btn">Log in</button>
</div>
</fieldset>
</form>
</div>
</body>
</html>
现在的情况我认为我应该实施一个新的课程,以确认我的百里香(在这里制作),但我已经有一个课程来配置我的应用程序: MvcConfiguration
@Configuration
public class MvcConfiguration implements ServletContextInitializer,
EmbeddedServletContainerCustomizer {
我虽然我可以在那里添加模板解析器,但无济于事。因为我的模板无法识别
注意:不将模板解析器添加到 MvcConfiguration 与添加模板解析器的结果相同:模板不可访问
我知道该指南是基于一个spring mvc应用程序而我正在我自己的项目中实现它,但如果有人能指出我正确的方向我将非常感激
这是我得到最多的错误:java log
答案 0 :(得分:0)