0

ログインしたユーザーのセッションを実装する方法

これは私が実装したコードです

 def user=User.findByUserId(params.userId)
    if(user)
   {   
    def sessionUser=user
    def sessionId=sessionUser.id                       
    constSessionUser=sessionUser
    constSessionId=sessionId
  ..........
  } 

しかし、別のユーザー名とパスワードを使用してログインすると、session.invalidate() で終了したにもかかわらず、返される params.userId は以前のユーザーのものです。

私はSpringsecurityを使用しているので、ユーザー名とパスワードを渡すだけですが、作成されたセッションはまだ以前のユーザーまたは現在登録されている他のユーザーのものです!

1) SPRING SECURITY SINCE を使用してログインしているユーザーのセッションを作成するにはどうすればよいですか

   def user=User.findByUserName(params.username)

も同じ問題を引き起こしています

2) 別のユーザーがログインしている場合でも、同じセッションが進行中でないようにセッションを終了するにはどうすればよいですか

どんな助けでも本当に感謝しますplz ...私はGrailsに慣れていないので...

4

1 に答える 1

1

Spring Security プラグインを使用している場合は、セッションを使用したり、ユーザーを手動で追跡したりする必要はありません。必要に応じて、次のようにSpringSecurityService( docs を参照)からユーザーの詳細にアクセスできます。

class MyController() {

  SpringSecurityService springSecurityService


  def me() {    
     render model: [user: springSecurityService.currentUser]
  }
}
于 2012-05-01T07:43:33.093 に答える