在视图中使用spring security访问当前登录的用户username



如何在gsp视图中使用springSecurity访问当前登录的用户username,或者更具体地说,在文本字段中使用此值?

下面的解决方案不起作用:

value = " $ {sec.loggedInUserInfo(字段:"用户名")}"

下面两行在我的测试中都能正常工作。

<input name="username" type="text" value="${sec.username()}" />
<input name="username" type="text" value="${sec.loggedInUserInfo(field: 'username')}" />

你得到的错误可能来自其他地方。您是否可以在GSP中仅使用该输入标签进行测试?

自定义标签库选项获取有关登录用户的各种信息。

ExamplNameTagLib.groovy

class ExamplNameTagLib {
   static namespace = 'foo'
   def springSecurityService

   def currentUserProps = { attrs ->
      def user = springSecurityService.getCurrentUser()
      if (user) {
         if (attrs.username) {
             out << user.username 
         } else if (attrs.firstName) {
             out << user.firstName
         } else if (attrs.lastName) {
             out << user.lastName
         } else if (attrs.email) {
             out << user.email
         }
      }
   }
}

exampleViewPage.gsp

//Return username from taglib of the logged in user
<g:field type="text" 
         name="username" 
         value="${foo.currentUserProps(username: true)}" />
//Return email from taglib of the logged in user
<g:field type="email" 
         name="email" 
         value="${foo.currentUserProps(email: true)}"/>

相关内容

  • 没有找到相关文章

最新更新