Я новичок в Spring и Spring-Security. Я читаю уроки hereУдаление учетных данных для входа пользователя из сеанса при выходе пользователя из системы безопасности весной
Пользователю не разрешается удалять страницу сотрудника без входа. Поэтому, если вы нажмете добавить страницу сотрудника, вы будете перенаправлены на страницу входа в систему и при успешном входе в систему вы автоматически перейдете на страницу добавления сотрудника.
Но как только пользователь, входящий в систему, добавляет ссылку сотрудника, может быть доступен даже после выхода пользователя из системы. Доступ к нему возможен даже после перезапуска сервера, мне пришлось закрыть окно браузера, чтобы учетные данные для входа были уничтожены.
Он отлично работает, когда я сохраняю код выхода из системы как «j_spring_security_logout», который я не хочу использовать. Я хочу использовать пользовательские имена и URL-адреса, возможно ли это?
Это как моя весна-security.xml выглядит
<http auto-config="true" use-expressions="true">
<intercept-url pattern="/login" access="permitAll" />
<intercept-url pattern="/logout" access="permitAll" />
<intercept-url pattern="/accessdenied" access="permitAll" />
<intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
<form-login login-page="/login" default-target-url="/list"
authentication-failure-url="/accessdenied" />
<logout logout-success-url="/logout" invalidate-session="true"
delete-cookies="true" />
</http>
<authentication-manager alias="authenticationManager">
<authentication-provider>
<user-service>
<user name="hasif" password="password" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
Это как мой LoginController выглядит
@Controller общественного класса LoginController {
@RequestMapping(value = "/login", method = RequestMethod.GET)
public String login() {
return "login";
}
@RequestMapping(value = "/logout", method = RequestMethod.GET)
public String logout(HttpServletRequest request) {
HttpSession session = request.getSession(false);
session.invalidate();
return "logout";
}
@RequestMapping(value = "/accessdenied", method = RequestMethod.GET)
public String accessdenied() {
return "accessdenied";
}
}
В вашей конфигурации вы указываете только «logout-succes-url», вы не произносите «logout-url». 'logout-succes-url' - это URL, который вы отправляете после выхода из системы. –
@ M.Deinum это было. Я забыл поставить logout-url. Но есть ли способ изменить текстовое имя имени пользователя и пароля из их имен по умолчанию, таких как j_username и j_password? – Hasif
Как насчет указания 'username-parameter' и' password-parameter' в теге 'form-login' ... Все это объясняется в документации! –