
com.adaptrex.security.interceptor.SecurePermissionsInterceptor 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 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.SecurePermissions;
//
///*
// * Not implemented in standard realm yet
// */
//@Interceptor
//@SecurePermissions(permissions = {})
//public class SecurePermissionsInterceptor {
//
// private static Logger log = LoggerFactory.getLogger(SecurePermissionsInterceptor.class);
//
// @AroundInvoke
// public Object checkSecure(InvocationContext ctx) throws Exception {
// SecurePermissions a = ctx.getMethod().getAnnotation(SecurePermissions.class);
//
// Subject subject = SecurityUtils.getSubject();
// if (!subject.isAuthenticated()) {
// log.debug("Permission Not Authorized for: Anonymous @ " +
// ctx.getMethod().getDeclaringClass() + "." + ctx.getMethod().getName() + "()");
// return null;
// }
// if (hasPermission(subject, a)) {
// return ctx.proceed();
// } else {
// log.debug("Permission Not Authorized for: " + subject.getPrincipal().toString() + " @ " +
// ctx.getMethod().getDeclaringClass() + "." + ctx.getMethod().getName() + "()");
// return null;
// }
// }
//
// private boolean hasPermission(Subject subject, SecurePermissions permissions) {
// String[] permissionsList = permissions.permissions();
// if (permissionsList.length == 1) {
// try {
// subject.checkPermission(permissionsList[0]);
// return true;
// } catch (Exception e) {}
//
// } else if (permissions.inclusive()) {
// try {
// subject.checkPermissions(permissionsList);
// return true;
// } catch (Exception e) {}
//
// } else if (!permissions.inclusive()) {
// for (String role : permissionsList)
// if (subject.isPermitted(role)) return true;
// }
//
// return false;
// }
//}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy