Я использую собственную реализацию MVC, и я не уверен, не спроектирован ли Spring Security специально для реализации Spring MVC.Можно ли его использовать?
Мне неясно, какие части Spring Security мне следует использовать, а какие нет.Я предполагаю, что мне не нужны фильтры URL, поскольку мне нужно проверить доступ конкретно по параметрам URL в моих контроллерах (например, чтобы проверить, является ли Пользователь владельцем Статья ).Что-то вроде:
if (request.getUser().isAllowedTo("EditArticle", 27)) {...}
if (request.getUser().isAllowedTo("CategoryManager", 123)) {...}
if (request.getUser().isInRole("Admin")) {...}
Я не смог найти какой-то понятный способ входа / выхода пользователей программным способом.Я реализовал свои классы UserDetails
и UserDetailsService
для работы с пользователями с JPA, но я не вижу способа, как я могу продолжить вход и выход из системы в моих контроллерах.
РЕДАКТИРОВАТЬ:
Я не вижу способа, как вставить <form>
в мои шаблоны Freemarker - единственный способ создать форму, которую я нашел, с помощью:
<http pattern="/login.htm*" security="none"/>
<form-login login-page="/login.htm" default-target-url="/home.htm"/>
</http>
Как я могу настроить структуру формы входа?Могу ли я создать его самостоятельно?
Больше всего мне хотелось бы иметь возможность обрабатывать вход самостоятельно (например, с помощью DWR) и не использовать магию j_security_checks ...
Было бы здорово, если бы я мог обработать запрос на вход в систему самостоятельно и попросить службу аутентификации самостоятельно войти в систему для пользователя (чтобы я мог легко использовать Direct Web Remoting (DWR)):
if (user.username.ok() and user.password.ok()) {
authService.setUser(user);
authService.setLoggedIn(true);
}