Exemplo n.º 1
0
 /**
  * Get the {@link Subject} from somewhere.
  *
  * <p>If per-request subject caching is enabled, the request is checked first. If no subject is
  * present there, DeadboltHandler#getSubject is called. The resulting subject, if any, is cached
  * in the request.
  *
  * <p>If per-request subject caching is not enabled, DeadboltHandler#getSubject is called.
  *
  * @param deadboltHandler
  * @param ctx
  * @return
  */
 public static Subject getSubject(DeadboltHandler deadboltHandler, Http.Context ctx) {
   Object cachedUser = ctx.args.get(PluginConfigKeys.CACHE_DEADBOLT_USER);
   Subject subject = null;
   try {
     if (PluginUtils.isUserCacheEnabled()) {
       if (cachedUser != null) {
         subject = (Subject) cachedUser;
       } else {
         subject = deadboltHandler.getSubject(ctx);
         ctx.args.put(PluginConfigKeys.CACHE_DEADBOLT_USER, subject);
       }
     } else {
       subject = deadboltHandler.getSubject(ctx);
     }
   } catch (Exception e) {
     Logger.error("Error getting subject: " + e.getMessage(), e);
   }
   return subject;
 }