logindoasks.java
来自「本书以大量精简的实例介绍了Java安全性编程方面的概念和技术」· Java 代码 · 共 55 行
JAVA
55 行
import com.sun.security.auth.callback.TextCallbackHandler;
import javax.security.auth.*;
import javax.security.auth.login.*;
import java.security.*;
import java.util.*;
import java.io.*;
// import sample.principal.SamplePrincipal;
public class LoginDoAsKS{
public static void main(String[] args) {
LoginContext c=null;
//登录
TextCallbackHandler handler=new TextCallbackHandler( );
boolean pass;
try {
c = new LoginContext("simp",handler);
c.login();
}
catch (LoginException le) {
System.out.println("Authentication failed!");
System.exit(1);
}
Subject subj = c.getSubject();
MyactionKS myact=new MyactionKS( );
try {
// String filecontent=(String) Subject.doAsPrivileged(subj, myact,null);
String filecontent=(String) Subject.doAs(subj, myact);
System.out.println("\n Below is result of run MyactionKS");
System.out.println(filecontent);
} catch (AccessControlException e) {
System.out.println(e);
}
}
}
class MyactionKS implements PrivilegedAction {
public Object run() {
String content="";
String s;
String filename="c:\\autoexec.bat";
BufferedReader in;
try{
in = new BufferedReader(new FileReader(filename));
while ((s = in.readLine( )) != null) {
content+=s+"\n";
}
}
catch(IOException e){
System.out.println(e);
}
return content;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?