Когда я вхожу, используя Spring Security, я перенаправляюсь в список студентов / учеников, но как только я выхожу и пытаюсь снова получить доступ к ссылке, я получаю
type=Internal Server Error, status=500
Invalid property 'principal.username
Не удается найти действительное имя пользователя, но мне нужно снова получить доступ к странице входа в систему, когда я вышел из системы, это мой код jsp
<form:form action="${contextPath}/authenticateTheUser" method="POST">
<c:if test="${param.error !=null}">
<i class="failed">Sorry! You have entered ivalid username/password</i>
</c:if>
<c:if test="${param.logout !=null}">
<i class="logout">You Have Been Logged Out</i>
</c:if>
<table>
<tr>
<td><label>User Name</label></td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td><input type="submit" name="Login"></td>
</tr>
</table>
</form:form>
функция выхода из системы была добавлена в мой список учеников, но как только я вышла из системы, я ввожу свои учетные данные, и это дает мне белую метку 404, но когда я иду в ученик / список после того, как я получаю эту ошибку, я регистрируюсь как правильный пользователь, вот мой список-страница студента
<form:form action="${contextPath}/logout" method="POST">
<input type="submit" value="Log Out">
</form:form>
contextPath ссылается на мой код настройки
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/student").hasRole("EMPLOYEE").antMatchers("/student/showFormForAdd/**")
.hasRole("ADMIN").antMatchers("/student/addAddress/**/student/showFormForAdd/**").hasRole("MANAGER")
.and().formLogin().loginPage("/login").loginProcessingUrl("/authenticateTheUser").permitAll().and()
.logout().permitAll();
}
В целом мне нужно иметь возможность войти в систему и быть перенаправленным непосредственно в мой список студентов, и если я выйду из системы и снова войду в систему, мне потребуется та же функциональность, а не белая метка 500 или свойство Bean 'Principal.username 'не читается вот мой код контроллера
@Controller
@RequestMapping("/student")
public class StudentController {
@GetMapping("/list")
public String listStudents(Model model) {
List<Student> students = studentService.showAllStudents();
model.addAttribute("students", students);
return "list-students";
}
}
моя учетная запись
@Controller
public class LoginController {
@RequestMapping("/login")
public String showMyLoginPage() {
return "login-form";
}
}
обратите внимание, что мой контроллер входа по умолчанию имеет значение /login
, но мой /list
для моего list-students
имеет отображение запросов на уровне класса с именем /student