mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
remove SecurityManagerCaller
This commit is contained in:
@@ -97,18 +97,7 @@ public class CallerUtil {
|
|||||||
* @return {@link Caller}实现
|
* @return {@link Caller}实现
|
||||||
*/
|
*/
|
||||||
private static Caller tryCreateCaller() {
|
private static Caller tryCreateCaller() {
|
||||||
Caller caller;
|
return new StackTraceCaller();
|
||||||
try {
|
|
||||||
caller = new SecurityManagerCaller();
|
|
||||||
if(null != caller.getCaller() && null != caller.getCallerCaller()) {
|
|
||||||
return caller;
|
|
||||||
}
|
|
||||||
} catch (final Throwable e) {
|
|
||||||
//ignore
|
|
||||||
}
|
|
||||||
|
|
||||||
caller = new StackTraceCaller();
|
|
||||||
return caller;
|
|
||||||
}
|
}
|
||||||
// ---------------------------------------------------------------------------------------------- static interface and class
|
// ---------------------------------------------------------------------------------------------- static interface and class
|
||||||
}
|
}
|
||||||
|
@@ -1,72 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2013-2025 Hutool Team and hutool.cn
|
|
||||||
*
|
|
||||||
* 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 cn.hutool.v7.core.lang.caller;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import cn.hutool.v7.core.array.ArrayUtil;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@link SecurityManager} 方式获取调用者
|
|
||||||
*
|
|
||||||
* @author Looly
|
|
||||||
*/
|
|
||||||
public class SecurityManagerCaller extends SecurityManager implements Caller, Serializable {
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
private static final int OFFSET = 1;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Class<?> getCaller() {
|
|
||||||
final Class<?>[] context = getClassContext();
|
|
||||||
if (null != context && (OFFSET + 1) < context.length) {
|
|
||||||
return context[OFFSET + 1];
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Class<?> getCallerCaller() {
|
|
||||||
final Class<?>[] context = getClassContext();
|
|
||||||
if (null != context && (OFFSET + 2) < context.length) {
|
|
||||||
return context[OFFSET + 2];
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Class<?> getCaller(final int depth) {
|
|
||||||
final Class<?>[] context = getClassContext();
|
|
||||||
if (null != context && (OFFSET + depth) < context.length) {
|
|
||||||
return context[OFFSET + depth];
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isCalledBy(final Class<?> clazz) {
|
|
||||||
final Class<?>[] classes = getClassContext();
|
|
||||||
if(ArrayUtil.isNotEmpty(classes)) {
|
|
||||||
for (final Class<?> contextClass : classes) {
|
|
||||||
if (contextClass.equals(clazz)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
Reference in New Issue
Block a user