「java处理权限」Java 权限管理

博主:adminadmin 2022-12-18 20:36:06 67

本篇文章给大家谈谈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处理权限的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-18,除非注明,否则均为首码项目网原创文章,转载请注明出处。