import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class BaseT { public static void main(String[] args) throws IOException { System.setSecurityManager(new mySecurityM("ABC","123"));
File f=new File("E:\\Test.java");
DataInputStream fis=new DataInputStream(new FileInputStream(f));
String x=""; while((x=fis.readLine())!=null){
System.out.println(x);
}
fis.close();
}
} //----------------------
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader; public class mySecurityM extends SecurityManager {
private String upwd;
private String unam;
public mySecurityM(String unam,String upwd){
this.upwd=upwd;
this.unam=unam;
}
public boolean okacess(){
System.out.println("请输入用户名和密码,用逗号隔开");
BufferedReader dis = new BufferedReader(new InputStreamReader(System.in));
try {
String[] value=dis.readLine().split(",");
if (value[0].equals(this.unam)&&value[1].equals(this.upwd))
return true;
else
return false;
} catch (IOException e) {
return false;
}
} public void checkRead(String file){
if(!okacess()){
throw new SecurityException("No Premission.");
}
} }

数字签名

KEYSTORE
keytool -genkey -alias key.keystore -keyalg RSA -validity 30000 -keystore key.keystore
JARSIGNER
jarsigner -verbose -keystore key.keystore -signedjar ABCsigned.jar ABC.jar key.keystore

如果修改了CLASS文件,执行时会报错:

C:\Users\AD\Desktop>java -jar ABCsigned1.jar
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.SecurityException: SHA-256 digest error for
p2100/BaseT.class
at sun.security.util.ManifestEntryVerifier.verify(Unknown Source)
at java.util.jar.JarVerifier.processEntry(Unknown Source)
at java.util.jar.JarVerifier.update(Unknown Source)
at java.util.jar.JarVerifier$VerifierStream.read(Unknown Source)
at sun.misc.Resource.getBytes(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
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$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

SecurityManager USE的更多相关文章

  1. 使用 SecurityManager 和 Policy File 管理 Java 程序的权限

    参考资料 该文中的内容来源于 Oracle 的官方文档.Oracle 在 Java 方面的文档是非常完善的.对 Java 8 感兴趣的朋友,可以从这个总入口 Java SE 8 Documentati ...

  2. java安全管理器SecurityManager入门

    table { margin-left: 30px; width: 95%; border: 1px; border-collapse: collapse } img { border: 1px so ...

  3. Tomcat 6 --- 你很少使用的安全管理SecurityManager

    试想一下,如果你的JSP页面中包含一句代码“System.exit(1);”,你的web应用访问到该JSP时,会发生什么? 一般使用tomcat可能都没有注意到这个问题,本篇主要讲述tomcat 6中 ...

  4. shiro错误No SecurityManager accessible to the calling code

    Shire在Web.xml中shiroFilter的Mapping配置错误 org.apache.shiro.UnavailableSecurityManagerException: No Secur ...

  5. Using Java SecurityManager to grant/deny access to system functions

    In Java it is possible to restrict access to specific functions like reading/writing files and syste ...

  6. java SecurityManager

    ---- 众所周知,Java语言具有完善的安全框架,从编程语言,编译器.解释程序到Java虚拟机,都能确保Java系统不被无效的代码或敌对的编译器暗中破坏,基本上,它们保证了Java代码按预定的规则运 ...

  7. java基础系列--SecurityManager入门(转)

    转载作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/yiwangzhibujian/p/6207212.html 一.文章的目的 这是一篇对Java安全管理器入门的文 ...

  8. Java安全管理器——SecurityManager

    总的来说,Java安全应该包括两方面的内容,一是Java平台(即是Java运行环境)的安全性:二是Java语言开发的应用程序的安全性.由于我们不是Java本身语言的制定开发者,所以第一个安全性不需要我 ...

  9. Shiro源码分析之SecurityManager对象获取

    目录 SecurityManager获取过程 1.SecurityManager接口介绍 2.SecurityManager实例化时序图 3.源码分析 4.总结 @   上篇文章Shiro源码分析之获 ...

  10. [Shiro] tutorial 1 :SecurityManager and Subject

    SecurityManager是Shiro的绝对核心,不同于java.lang.SecurityManager,每个应用程序都要有一个SecurityManager. 所以我们第一件事就是配置一个Se ...

随机推荐

  1. js预览上传图片

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  2. 超实用的JavaScript代码段

    1. 判断日期是否有效 JavaScript中自带的日期函数还是太过简单,很难满足真实项目中对不同日期格式进行解析和判断的需要.JQuery也有一些第三方库来使日期相关的处理变得简单,但有时你可能只需 ...

  3. form-control给input添加这个class类后就会使用bootstrap自带的input框

    <input type="text" class="form-control" id="name" placeholder=" ...

  4. MongoDB_基本操作

    数据库操作 增加数据库 use db1 #如果数据库不存在,则创建数据库,否则切换到指定数据库 查询数据库 show dbs #可以看到,我们刚创建的数据库db1并不在数据库的列表中,要显示它我们需要 ...

  5. hibernate详细配置

    映射配置 <!-- 映射文件: 映射一个实体类对象:  描述一个对象最终实现可以直接保存对象数据到数据库中.  --> <!-- package: 要映射的对象所在的包(可选,如果不 ...

  6. 什么时候用created,什么时候用mounted

    created 在实例创建完成后被立即调用.在这一步,实例已完成以下的配置:数据观测 (data observer), 属性和方法的运算,watch/event 事件回调.然而,挂载阶段还没开始,$e ...

  7. node——模块化

    之前写的新闻部分几乎所有操作都写在了一起,这次开始进行模块化. 为什么要模块化: 1.提高开发效率,所有操作在一个文件内,不方便团队操作,模块化可多人同时操作 2.当程序出错,可以分模块寻找错误 3. ...

  8. mongoDB authentication

    转自:http://blog.csdn.net/allen_jinjie/article/details/9235073 1. 最开始的时候,我们启动mongodb,但是不包含--auth参数: E: ...

  9. 如何让 Laravel API 永远返回 JSON 格式响应?

    当你在编写完全为 API 服务的 Laravel 应用时,你希望所有响应都是 JSON 格式的,而不是例如说授权错误会重定向到 /home 或 /login,最终重定向会变成 InvalidArgum ...

  10. 《黑白团团队》第八次团队作业:Alpha冲刺 第二天

    项目 内容 作业课程地址 任课教师首页链接 作业要求 团队项目 填写团队名称 黑白团团队 填写具体目标 认真负责,完成项目 团队项目Github仓库地址链接. 第二天 日期:2019/6/16 成员 ...