Безопасность Spring - одна и та же страница для доставки различного контента в зависимости от роли пользователя - PullRequest
2 голосов
/ 24 мая 2010

Я пытался найти любой предыдущий пост, связанный с моей проблемой, но не смог найти ни одного.У меня есть сценарий, где на странице обрабатывается 3 разных сценария, и один из них не работает.Эта страница возвращает различное содержимое в зависимости от того, является ли пользователь аутентифицированным или анонимным.

localhost: 8080 / myApp / muUrl? Test = authenticatedContent -> используется для сценария 1 & 2 localhost: 8080 / myApp / muUrl? Test =anonymousContent -> используется для сценария 3 Сценарий:

1) Аутентифицированный пользователь получает доступ к URL-адресу страницы - пользователь получает правильную отображаемую информацию.Работает нормально

2) URL-адрес страницы доступа анонимного пользователя с параметрами, требующими аутентификации - если он анонимный, существует второй уровень проверки содержимого, к которому он обращается.например, на основе параметров GET существует пользовательская логика для определения необходимости аутентификации пользователя.В этом случае страница перенаправляется на страницу входа (работает нормально).

3) Анонимный пользователь, получающий доступ к URL страницы с параметрами, для которых не требуется аутентификация - в этом случае я получаю SAvedRequest и перенаправляю на URL, который ведет меня в бесконечный цикл.

Не хватает ли мнечто-то очень очевидное или в AuthenticationProcessFilterEntryPoint есть способ сказать: «НЕ перенаправлять на страницу входа, а обрабатывать»?

спасибо.

1 Ответ

0 голосов
/ 26 сентября 2012

Я наконец нашел решение (кто-то предложил мне его на весенних форумах). Идея состоит в том, чтобы использовать аннотацию @PreAuthorize в контроллерах, как описано здесь: см. Здесь

См. Пример кода ниже:

@RequestMapping("/")
@PreAuthorize("isAuthenticated()")
public String authenticatedHomePage() {
    return "authenticatedHomePage";
}

@RequestMapping("/")
public String homePage() {
    return "homePage";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...