Grails Spring Security Switch Проблемы с настройкой пользователя
Я пытаюсь настроить функцию SwitchUser плагина Spring Security и не удается. По большей части, это кажется простым и неукоснительным, но после того, как весь код установлен на месте и нажата кнопка "Переключить", он просто перенаправляет меня на домашний URL по умолчанию без переключения.
Кто-нибудь имеет больше информации, чем то, что уже существует на официальном сайте плагинов Spring Security Core? Я изучал Goggling и читал все, что связано с ним, и не нашел никакой оригинальной информации - почти все это копия оригинальной документации Беквита и Тэлботта.
Ниже приведен код для моего приложения:
Config.groovy
grails.plugins.springsecurity.useSwitchUserFilter = true
grails.plugins.springsecurity.interceptUrlMap = [
'/j_spring_security_switch_user': ['ROLE_SWITCH_USER', 'isFullyAuthenticated()'],
'/j_spring_security_exit_user': ['permitAll'],
]
Я не уверен, должен ли я использовать interceptUrlMap или controllerAnnotations (?), Или какие критерии будут определять, какой использовать.
Код.gsp:
<sec:ifLoggedIn>
Logged in as <sec:username/>
</sec:ifLoggedIn>
<sec:ifSwitched>
<a href='${request.contextPath}/j_spring_security_exit_user'>
Resume as <sec:switchedUserOriginalUsername/>
</a>
</sec:ifSwitched>
<sec:ifNotSwitched>
<sec:ifAllGranted roles='ROLE_SWITCH_USER'>
<form action='${request.contextPath}/j_spring_security_switch_user' method='POST'>
Switch to user: <input type='text' name='j_username'/><br/>
<input type='submit' value='Switch'/>
</form>
</sec:ifAllGranted>
</sec:ifNotSwitched>
Я не знаю ни о каком другом коде или настройках. Дайте мне знать, если вам нужно больше информации.
2 ответа
Похоже, что фильтр принимает переключение только между пользователями с ролью ROLE_SWITCH_USER
Оказывается, весь код для SwitchUser был реализован правильно. Хотя SwitchUser по-прежнему не работает согласованно, проблема была не в коде, включенном в вопрос. У нас были проблемы с реализацией ролей в Grails.
Я хотел бы иметь лучший ответ. Я все еще хотел бы узнать больше о SwitchUser - больше, чем то, что я нашел с Googles.