「java处理权限」Java 权限管理
本篇文章给大家谈谈java处理权限,以及Java 权限管理对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java如何设置文件的权限
在Java中,文件权限是非常具体的操作系统:* nix中,NTFS(Windows)及FAT/FAT32,都有着别样的文件权限。 Java提供了一些通用的文件权限来处理它。
检查文件权限允许:
1.file.canExecute(); – 返回true,文件是可执行的,false 则不是。
2.file.canWrite(); – 返回true,文件是可写的,false 则不是。
3.file.canRead(); – 返回true,文件是可读的,false 则不是。
设置文件权限:
1.file.setExecutable(boolean); – true允许执行操作; false则是禁止它。
2.file.setReadable(boolean); – true允许读操作; false则是禁止它。
3.file.setWritable(boolean); – true允许写操作; false则是禁止它。
在* nix的系统中,可能需要配置有关文件权限的详细指定,例如设置777权限的文件或目录,但是,Java的IO类没有现成的方法,但你可以使用下面的解决方法:
Runtime.getRuntime().exec("chmod 777 file");文件权限的例子
import java.io.File;
import java.io.IOException;
/×
×只能给当前用户赋予对该文件的权限,调用createNewFile()方法默认的权限是644.
×/
public class FilePermission
{
public static void main( String[] args )
{
try {
File file = new File("/home/test3.txt");
if (file.createNewFile()){
System.out.println("File is created!");
//Runtime.getRuntime().exec("chmod 777 /home/test3.txt");
file.setExecutable(true);//设置可执行权限
file.setReadable(true);//设置可读权限
file.setWritable(true);//设置可写权限
System.out.println("is execute allow : " + file.canExecute());
System.out.println("is read allow : " + file.canRead());
System.out.println("is write allow : " + file.canWrite());
}else{
System.out.println("File already exists.");
}
} catch (IOException e) {
e.printStackTrace();
}
}
什么是Java类的访问权限?
在解释访问权限控制之前,先看一个场景。
在学生信息管理系统中,有两个类,分别是学生类和课程类,课程类提供了课程表和课程安排两个方法,学生类可以调用课程类提供的课程表查看课程安排,但不能调用课程安排方法,该如何处理,此时就可以利用访问权限来进行控制。
在Java中,提供了四种访问权限控制:默认访问权限(包访问权限),public,private以及protected。
默认访问权限(default):即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访问。
private: 对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。
protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护的”。被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。
public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。下表列出了四种访问权限的控制粒度:
例1:
Main.java:
package com.cxh.test1;
public class Main {
/**
* @param args */
public static void main(String[] args)
{
// TODO Auto-generated method stub
People people = new People("Tom");
System.out.println(people.getName());
}
}
People.java
package com.cxh.test1;
class People { //默认访问权限(包访问权限)
private String name = null;
public People(String name)
{
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name)
{
this.name = name;
}
}
从代码可以看出,修饰People类采用的是默认访问权限,而由于People类和Main类在同一个包中,因此People类对于Main类是可见的。
java 中如何实现权限管理
struts拦截器不推荐使用 建议使用spring AOP 面向切面 统一权限操作当做一类失误处理 对于数据库权限 简单权限可以设定一张权限表 复杂权限 但权限没有从属关系可以使用2进制表示 0101010 0和1分别代表是否具有该权限操作 多级权限表结构又相应复杂
给你一个简单的管理代码
public class CheckIdAdvice implements MethodInterceptor {
protected final Log log = LogFactory.getLog(getClass());
public Object invoke(MethodInvocation invocation) throws Throwable {
String methodName = invocation.getMethod().getName();
for(int i=0;iConstant.levelOneMethod.length;i++)
{
if(Constant.levelOneMethod[i].equals(methodName))
{
Map map=(Map) ActionContext.getContext().get("session");
Admin admin=(Admin)map.get("admin");
if(admin.getQuanxian()!=nulladmin.getQuanxian()=1)
{
return invocation.proceed();
}
else
{
log.info("进入失败");
return false;
}
}
}
for(int i=0;iConstant.levelTwoMethod.length;i++)
{
if(Constant.levelTwoMethod[i].equals(methodName))
{
Map map=(Map) ActionContext.getContext().get("session");
Admin admin=(Admin)map.get("admin");
if(admin.getQuanxian()!=nulladmin.getQuanxian()=3)
{
return invocation.proceed();
}
else
{
log.info("进入失败");
return false;
}
}
}
for(int i=0;iConstant.levelThreeMethod.length;i++)
{
if(Constant.levelThreeMethod[i].equals(methodName))
{
Map map=(Map) ActionContext.getContext().get("session");
Admin admin=(Admin)map.get("admin");
if(admin!=nulladmin.getQuanxian()=5)
{
return invocation.proceed();
}
else
{
log.info("进入失败");
return false;
}
}
}
return invocation.proceed();
}
}
java处理权限的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java 权限管理、java处理权限的信息别忘了在本站进行查找喔。
发布于:2022-12-18,除非注明,否则均为
原创文章,转载请注明出处。