关于java.security.AccessController.doPrivileged
lineSeparator = (String) java.security.AccessController.doPrivileged(
new sun.security.action.GetPropertyAction("line.separator"));
}
比较好奇和System.getProperty有什么区别呢?
下面是stackoverflow上的回答http://stackoverflow.com/questions/4954924/getpropertyaction-vs-system-getproperty-in-obtaining-system-variables
感觉也没有完全说清楚。
关于System.getProperty 看源码得到:
public static String getProperty(String key) {
checkKey(key);
SecurityManager sm = getSecurityManager();
if (sm != null) {
sm.checkPropertyAccess(key);
}
return props.getProperty(key);
}
再得到set的方法:
public static void setProperties(Properties props) {
SecurityManager sm = getSecurityManager();
if (sm != null) {
sm.checkPropertiesAccess();
}
if (props == null) {
props = new Properties();
initProperties(props);
}
System.props = props;
}
可以看到时需要initProperties
private static native Properties initProperties(Properties props);
然后就终结了 这个native 的方法是怎么做的呢 不知道。。。
而且doPrivileged也还是native 的方法 关于这两个native 的方法的区别真的就是不知道了。
分享到:
相关推荐
at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc....
at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$...
at java.security.AccessController.doPrivileged(NativeMethod) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229) at java....
at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$...
在Java中,可以通过`java.security.PrivilegedAction`和`java.security.AccessController.doPrivileged()`方法实现。 10. **Java标准权限(Standard Permissions)**:Java提供了一些预定义的权限,如`All...
at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation....
在Java中,`java.security.AccessController`和`java.security.Permission`类用于实现这一功能,它们定义了权限对象并检查是否具备执行特定操作的权限。 3. **访问控制列表(ACL)**:这是一个记录了哪些用户或组...
at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc....
4. java.security.AccessController:在需要进行安全性检查的地方,会调用AccessController的doPrivileged方法,这会暂时放松当前代码的信任级别。 三、实现机制 1. 沙箱模型:Java的沙箱模型限制了未经签名的代码...
6. **代码实现**:在实际代码中,使用`AccessController.doPrivileged()`方法来执行需要特定权限的代码块。这样,即使在没有权限的环境中,也可以在受保护的上下文中执行这些操作。 在文档"权限实现实例.doc"中,...
AccessController.doPrivileged(new java.security.PrivilegedAction() { public Void run() { put("SSLContext.TLS", "org.apache.harmony.xnet.provider.jsse.SSLContextImpl"); put("Alg.Alias.SSLContext....
新的变体AccessController.doPrivileged使代码能够断言其特权的子集,而不会阻止堆栈的完整遍历来检查其他权限 更强大的基于密码加密的算法 JSSE服务器中的SSL / TLS服务器名称指示(SNI)扩展支持 支持AEAD算法...
at java.security.AccessController.doPrivileged(Native Method) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) at...
该实现重写受保护的方法my.seoj.activiti.sandbox.script.Main.PrivilegedScriptingEngines.evaluate(String,String,Bindings) 重写的方法应该将super.evaluate()包装在AccessController.doPrivileged()中。...
在 BufferedWriter 中,lineSeparator 变量用于存储行分隔符,它的值是通过 java.security.AccessController.doPrivileged 方法获取的。 BufferedWriter 的使用场景包括日志记录、文件写入、网络传输等场景。在这些...
总结一下,"security-study"项目着重于Java环境下的权限验证技术,包括但不限于Java内置的安全模型、Policy配置、AccessController的使用、Spring Security的集成以及Servlet容器的安全配置。通过深入学习这些知识点...
8. **权限动态授予**:在运行时,可以使用AccessController类的doPrivileged方法来临时提升代码的权限,但这种方式需要谨慎使用,因为可能导致安全性漏洞。 9. **Java Security API**:Java提供了一整套的Security ...
例如,`java.security`包就是Java安全框架的核心,其中包含了如`AccessController`、`Policy`、`Principal`等关键组件。 1. **安全管理器(SecurityManager)**:这是Java安全模型的中心组件,它可以控制程序的某些...
在Java的安全实现中,`java.security`包包含了一系列与安全相关的类和接口,如`AccessController`。`AccessController`是访问控制框架的核心,它在调用栈中检查权限,如果调用链中的任何部分缺乏所需权限,就会抛出`...