public ShiroSecurityContext(ContainerRequestContext containerRequestContext) { this.containerRequestContext = containerRequestContext; this.originalSecurityContext = containerRequestContext.getSecurityContext(); }
@Override public void filter(ContainerRequestContext containerRequestContext) throws IOException { WebApplicationException firstException = null; for (@SuppressWarnings("rawtypes") AuthFilter authFilter : handlers) { final SecurityContext securityContext = containerRequestContext.getSecurityContext(); try { authFilter.filter(containerRequestContext); if (securityContext != containerRequestContext.getSecurityContext()) { return; } } catch (WebApplicationException e) { if (firstException == null) { firstException = e; } } } throw firstException; } }
@Override public int hashCode() { checkState(); return 7 * requestContext.getSecurityContext().hashCode(); }
@Override public boolean equals(Object that) { checkState(); return that instanceof SecurityContext && that.equals(requestContext.getSecurityContext()); }
@Override public int hashCode() { checkState(); return 7 * requestContext.getSecurityContext().hashCode(); }
@Override public boolean equals(Object that) { checkState(); return that instanceof SecurityContext && that.equals(requestContext.getSecurityContext()); }
private static boolean isAuthenticated(final ContainerRequestContext requestContext) { return requestContext.getSecurityContext().getUserPrincipal() != null; } }
private static boolean isAuthenticated(final ContainerRequestContext requestContext) { return requestContext.getSecurityContext().getUserPrincipal() != null; } }
@Override public boolean isSecure() { return containerRequestContext.getSecurityContext().isSecure(); }
@Nullable public static String getUserNameFromRequest(ContainerRequestContext requestContext) { final SecurityContext securityContext = requestContext.getSecurityContext(); if (!(securityContext instanceof ShiroSecurityContext)) { return null; } final ShiroSecurityContext shiroSecurityContext = (ShiroSecurityContext) securityContext; final Principal userPrincipal = shiroSecurityContext.getUserPrincipal(); if (!(userPrincipal instanceof ShiroPrincipal)) { return null; } final ShiroPrincipal shiroPrincipal = (ShiroPrincipal) userPrincipal; return shiroPrincipal.getName(); }
@Override public Principal getUserPrincipal() { checkState(); return requestContext.getSecurityContext().getUserPrincipal(); }
@Override public Principal getUserPrincipal() { checkState(); return requestContext.getSecurityContext().getUserPrincipal(); }
@Override public boolean isSecure() { checkState(); return requestContext.getSecurityContext().isSecure(); }
@Override public boolean isUserInRole(String role) { checkState(); return requestContext.getSecurityContext().isUserInRole(role); }
@Override public boolean isSecure() { checkState(); return requestContext.getSecurityContext().isSecure(); }
@Override public String getAuthenticationScheme() { checkState(); return requestContext.getSecurityContext().getAuthenticationScheme(); }
@Override public boolean isUserInRole(String role) { checkState(); return requestContext.getSecurityContext().isUserInRole(role); }
@Override public String getAuthenticationScheme() { checkState(); return requestContext.getSecurityContext().getAuthenticationScheme(); }
@Override public void filter(final ContainerRequestContext requestContext) throws IOException { if (!denyAll) { if (rolesAllowed.length > 0 && !isAuthenticated(requestContext)) { throw new ForbiddenException(LocalizationMessages.USER_NOT_AUTHORIZED()); } for (final String role : rolesAllowed) { if (requestContext.getSecurityContext().isUserInRole(role)) { return; } } } throw new ForbiddenException(LocalizationMessages.USER_NOT_AUTHORIZED()); }
@Override public void filter(final ContainerRequestContext requestContext) throws IOException { if (!denyAll) { if (rolesAllowed.length > 0 && !isAuthenticated(requestContext)) { throw new ForbiddenException(LocalizationMessages.USER_NOT_AUTHORIZED()); } for (final String role : rolesAllowed) { if (requestContext.getSecurityContext().isUserInRole(role)) { return; } } } throw new ForbiddenException(LocalizationMessages.USER_NOT_AUTHORIZED()); }