私はGlassfish 3.1.2でProgrammaticLoginをユーザー名、パスワード、レルムで使用していますが、うまくいきます。とにかく、 context.getCallerPrincipal() を呼び出すと、ユーザー名を返す context.getCallerPrincipal().getName() で org.glassfish.security.common.PrincipalImpl を取得します。
ProgrammaticLogin を介して Principle を渡す方法はありますか?