`

java permission

    博客分类:
  • java
阅读更多
import javax.swing.JFrame;

public class PermissionTest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
        System.setSecurityManager(new SecurityManager());
        JFrame frame=new PermissionTestFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
       
}

}



import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;

public class PermissionTestFrame extends JFrame {
     private JTextField textField;
     private WordCheckTextArea textArea;
     private static final int DEFAULT_WIDTH=400;
     private static final int DEFAULT_HEIGHT=200;
    
     public PermissionTestFrame()
     {
    this.setTitle("PermissionTest");
    this.setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
    textField=new JTextField(20);
    JPanel panel=new JPanel();
    panel.add(textField);
    JButton openButton=new JButton("Indert");
    panel.add(openButton);
    openButton.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
insertWords(textField.getText());
}
   
    });
    add(panel,BorderLayout.NORTH);
    textArea=new WordCheckTextArea();
    add(new JScrollPane(textArea),BorderLayout.CENTER);
   
     }
     private void insertWords(String words)
     {
    try
    {
    textArea.append(words+"\n");
    }catch(SecurityException e)
    {
    JOptionPane.showMessageDialog(this,"I am sorry,but I cannot do that");
   
    }
     }
}



import java.security.Permission;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

public class WordCheckPermission extends Permission {

private String action;

public WordCheckPermission(String name) {
super(name);
}
public WordCheckPermission(String name,String anAction)
{
super(name);
action=anAction;
}

@Override
public boolean equals(Object other) {
if(other==null)return false;
if(!getClass().equals(other.getClass())) return false;
WordCheckPermission b=(WordCheckPermission) other;
if(!action.equals(b.action)) return false;
if(action.equals("insert"))
return getName().equals(b.getName());
else if(action.equals("avoid"))
return badWordSet().equals(b.badWordSet());
else
return false;
}

@Override
public String getActions() {
return action;
}

@Override
public int hashCode() {
return getName().hashCode()+action.hashCode();
}

@Override
public boolean implies(Permission other) {
if(!(other instanceof WordCheckPermission)) return false;
        WordCheckPermission b=(WordCheckPermission) other;
        if(action.equals("insert"))
        {
        return b.action.endsWith("insert")&&getName().indexOf(b.getName())>=0;
        }else if(action.equals("avoid"))
        {
        if(b.action.equals("avoid"))
        return b.badWordSet().containsAll(badWordSet());
             else if(b.action.equals("insert"))
              {
           for(String badWord:badWordSet())
          if(b.getName().indexOf(badWord)>=0)
          return false;
             return true;
           }else
           {
        return false;
           }
   }
        else return false;
}

public Set<String> badWordSet()
{
Set<String> set=new HashSet<String>();
set.addAll(Arrays.asList(getName().split(",")));
return set;
}
}



import javax.swing.JTextArea;

public class WordCheckTextArea extends JTextArea {

/* (non-Javadoc)
* @see javax.swing.JTextArea#append(java.lang.String)
*/
@Override
public void append(String str) {
// TODO Auto-generated method stub
WordCheckPermission p=new WordCheckPermission(str,"avoid");
SecurityManager manager=System.getSecurityManager();
if(manager!=null)manager.checkPermission(p);
super.append(str);
}

}

//PermissionTest.policy
grant codeBase "file:d:/test/permission/"
{
//permission java.security.AllPermission;
  permission WordCheckPermission "sex,drugs,c++", "avoid";
  permission WordCheckPermission "my name is minn", "insert";

};

实现权限类
1)javac *.java
2)java  -Djava.security.policy=PerssionTest.policy  PermissionTest
分享到:
评论

相关推荐

    怎样禁用及回收java的授权dbms_java

    EXEC dbms_java.grant_permission('TYSP', 'SYS:java.net.SocketPermission', '192.168.1.107:8080', 'connect,resolve'); ``` 接下来,我们希望撤销这个权限: 1. **查询授权信息**: ```sql SELECT * FROM USER...

    Android代码-WaveProgressView

    Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, in

    解决Linux下tomcat连接MySQL数据库

    permission java.security.AllPermission; }; ``` 这条语句表示给予`/var/lib/tomcat5.5/webapps/项目名称/`下的所有代码全权限(`AllPermission`),这将覆盖Java默认的安全策略,使得Web应用能够连接到本地的...

    在oracle中使用java sources

    2. **上传到数据库**:使用`DBMS_JAVA`包中的`GRANT PERMISSION`过程将Java源代码导入到数据库中,这样它们就可以被编译和执行了。 3. **编译Java源代码**:使用`DBMS_JAVA`包的`COMPILE SOURCE`过程来编译Java源...

    将 Shiro 作为应用的权限基础 三:基于注解实现的授权认证过程.docx

    Apache Shiro 是一个强大且易用的 Java 安全框架,提供身份认证、授权和会话管理功能。本文主要探讨如何在应用中基于注解实现 Shiro 的授权认证过程。 授权,即访问控制,是 Shiro 的核心功能之一,用于决定用户...

    java sftp文件上传

    Java SFTP文件上传是通过Java编程语言实现与Secure File Transfer Protocol(SFTP)服务器进行交互,将本地文件安全地传输到远程服务器的过程。SFTP是一种基于SSH的安全文件传输协议,它提供了在不安全网络上安全...

    Android自定义action与permission_java_action_

    在Android系统中,Action和Permission是两个非常关键的概念,它们对于构建可扩展和安全的应用程序至关重要。本教程将深入探讨如何在Android应用中自定义Action和Permission,以及它们在应用程序架构中的作用。 ...

    RolePermission.java

    RolePermission.javaRolePermission.javaRolePermission.javaRolePermission.javaRolePermission.javaRolePermission.javaRolePermission.javaRolePermission.javaRolePermission.javaRolePermission....

    Pro Android学习:permission例子

    `Pro Android`学习系列深入探讨了Android平台的各种方面,其中“permission”部分专门讲解如何处理应用权限。在这个例子中,我们将详细了解Android权限系统的工作原理,以及如何在实际项目中应用它们。 Android权限...

    PermissionDemo.zip

    `PermissionDemo.zip`项目可能包含了一个完整的Android Studio工程,包括相关的布局文件、Java或Kotlin代码、以及示例如何在不同场景下正确请求和处理权限的逻辑。通过这个项目,你可以学习如何在实际应用中实现优雅...

    Android权限列表permission说明.txt

    ```java TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); String phoneNumber = telephonyManager.getLine1Number(); ``` 需要注意的是,在实际设备上获取...

    permissiondemo2.zip

    【标题】"permissiondemo2.zip" 提供的是一款与权限管理相关的Java应用示例,它可能包含了一个完整的或部分的Java代码实现,用于演示如何在应用程序中处理和控制用户权限。"javaYZ"可能指的是Java权限(Permission)...

    个人亲测oracle触发器调用java程序

    dbms_java.grant_permission('jkt','SYS:java.io.FilePermission','c:\MO_WriteData.txt','read,write,execute,delete'); end; ``` 这将授予jkt用户对c:\MO_WriteData.txt文件的读写权限。 三、创建存储过程 下...

    oracle调用java包

    DBMS_JAVA.GRANT_PERMISSION('PUBLIC', 'java.io.FilePermission', '*', 'read'); DBMS_JAVA.PRECOMPILE('myJavaPackage.MyClass', TRUE); DBMS_LOB.COPY(dbms_lob.getlength(jar_file), jar_file, 1, dbms_lob....

    Java权限控制源码实例.rar

    在Java中,权限是通过`java.security.Permission`类及其子类来表示的。例如,`FilePermission`类用于控制对文件和目录的访问。 在描述中提到的几个关键操作,如写入、添加和删除权限,都可以通过`FilePermission`类...

    java 权限实例代码

    在Java中,权限是通过Permission类及其子类来表示的,如FilePermission、SocketPermission等。这些类定义了特定类型的操作,比如读取文件、打开网络连接等。描述中的“有需要的同学可以自由下载”,暗示了这个代码库...

    java权限设计

    7. **权限类(Permission Class)**:每个权限都有对应的类,如`java.io.FilePermission`,这些类在`java.security`包下定义。 8. **认证(Authentication)与授权(Authorization)**:认证是确定用户身份的过程,...

    Java 2平台安全技术-结构,API设计和实现

    3.6.1 java.security.Permission 27 3.6.2 许可权集合 28 3.6.3 java.security.Unresolved Permission 29 3.6.4 java.io.FilePermission 31 3.6.5 java.net.SocketPermission 33 3.6.6 java.security....

    Java实现权限管理(已经验证过,导入可以直接使用)

    在Java中,我们可以创建一个`Role`类来表示角色,一个`Permission`类来表示权限,然后通过`Role`和`Permission`的多对多关系来实现角色与权限的绑定。 2. **数据库设计**:Oracle数据库因其高性能和稳定性常被用于...

    Java手机短信项目源码

    项目源码会包含如何在AndroidManifest.xml文件中声明和使用这些权限,如`&lt;uses-permission android:name="android.permission.SEND_SMS"&gt;`和`&lt;uses-permission android:name="android.permission.RECEIVE_SMS"&gt;`。...

Global site tag (gtag.js) - Google Analytics