
com.adaptrex.security.interceptor.SecureRolesInterceptor Maven / Gradle / Ivy
///*
// * Copyright 2012 Adaptrex, LLC
// *
// * Licensed under the Apache License, Version 2.0 (the "License");
// * you may not use this file except in compliance with the License.
// * You may obtain a copy of the License at
// *
// * http://www.apache.org/licenses/LICENSE-2.0
// *
// * Unless required by applicable law or agreed to in writing, software
// * distributed under the License is distributed on an "AS IS" BASIS,
// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// * See the License for the specific language governing permissions and
// * limitations under the License.
// */
//
//package com.adaptrex.core.security.interceptor;
//
//import java.util.Arrays;
//
//import javax.interceptor.AroundInvoke;
//import javax.interceptor.Interceptor;
//import javax.interceptor.InvocationContext;
//
//import org.apache.shiro.SecurityUtils;
//import org.apache.shiro.subject.Subject;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//
//import com.adaptrex.core.security.annotation.SecureRoles;
//
//@Interceptor
//@SecureRoles(roles = {})
//public class SecureRolesInterceptor {
//
// private static Logger log = LoggerFactory.getLogger(SecureRolesInterceptor.class);
//
// @AroundInvoke
// public Object checkSecure(InvocationContext ctx) throws Exception {
// SecureRoles a = ctx.getMethod().getAnnotation(SecureRoles.class);
//
// Subject subject = SecurityUtils.getSubject();
// if (!subject.isAuthenticated()) {
// log.debug("Group Not Authorized for: Anonymous @ " +
// ctx.getMethod().getDeclaringClass() + "." + ctx.getMethod().getName() + "()");
// return null;
// }
//
// if (isMember(subject, a)) {
// return ctx.proceed();
// } else {
// log.debug("Role Not Authorized for: " + subject.getPrincipal().toString() + " @ " +
// ctx.getMethod().getDeclaringClass() + "." + ctx.getMethod().getName() + "()");
// return null;
// }
// }
//
// private boolean isMember(Subject subject, SecureRoles roles) {
// String[] roleList = roles.roles();
// if (roleList.length == 1) {
// try {
// subject.checkRole(roleList[0]);
// return true;
// } catch (Exception e) {}
//
// } else if (roles.inclusive()) {
// try {
// subject.checkRoles(Arrays.asList(roleList));
// return true;
// } catch (Exception e) {}
//
// } else if (!roles.inclusive()) {
// for (String role : roleList)
// if (subject.hasRole(role)) return true;
// }
//
// return false;
// }
//}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy