2015-04-21 2 views
2

Поскольку Spring Security Core Plugin в настоящее время не работает для Grails 3, я пытаюсь использовать Spring boot, как указано here для авторизации. Пожалуйста, дайте некоторое представление о том, как отображать имя текущего пользователя в gsp. Есть ли способ использовать теги Spring Security в файлах gsp. СпасибоGrails 3 Весенние теги безопасности в gsp

+0

Большой вопрос - гаванью» t еще не смог получить GSP для распознавания весенних тегов безопасности. Сообщение Ошибка обработки запроса; Вложенное исключение - org.grails.gsp.GroovyPagesException: Обработка ошибок GroovyPageView: Неизвестный тег JSP sec: authorize – arcseldon

ответ

3

A tag library имеет доступ к session и может использоваться, чтобы отобразить текущее имя пользователя.

В GSP, говоря:

<g:username /> 

Затем создайте TagLib, такие как:

Grails-приложение/TagLib/SecurityTagLib.groovy

class SecurityTagLib { 

    def username = { 
     def token = session.SPRING_SECURITY_CONTEXT?.getAuthentication() 
     out << token?.getPrincipal()?.getUsername() 
     } 

} 
+0

Вы серьезно не предлагаете людям создавать свои собственные библиотеки тегов, потому что страницы Grails Grails не поддерживают стандартные библиотеки тегов Spring Security, которые вы используете ? Yuck – arcseldon

+0

Да. 1) Библиотеки тегов легкие и легкие в создании, и 2) альтернативы, такие как настройка плагина, более активны. При этом было бы неплохо, если бы плагин имел встроенный по умолчанию тег 'username'. –

+0

Спасибо за ответ. Хорошо, оцените, что создание тегов довольно просто, поэтому в этом смысле да, а не настраивать плагин, это лучше двух зол. Но я действительно надеялся, что будет потеряна поддержка Spring Security Tag lib или эквивалентной замены - это похоже на то, что мне нужно для сборки (для моей usecase) - это дружественный весовой тег libb lib, и это действительно как сюрприз. Есть идеи? – arcseldon

0

Я применил урезанные версии SpringSecurityService и SecurityTagLib в моем приложении на основе последнего плагина Grails 2. Его исходный плагин, вы можете просто скопировать необходимые теги.

Смежные вопросы