5.10.2 ユーザIDの取得の実装(APIを使用する場合)
認証が完了したあと,認証したユーザIDは,Principalオブジェクト(java.security.Principal)としてSubjectに格納されています。ユーザIDを取得する場合の実装例を次に示します。
<%@ page import="javax.security.auth.Subject" %> <%@ page import="java.security.Principal" %> ... <% ... Subject subject = lc.getSubject(); Principal principal = (Principal)subject.getPrincipals().iterator().next(); String userid = principal.getName(); %> ...
SubjectからPrincipalが格納されているiteratorを取り出し,その1番目に格納されている値をPrincipalオブジェクトに型変換してから,PrincipalオブジェクトのgetNameメソッドでユーザIDを取得しています。