在我正在开发的一个项目中有一个场景,其中有一个中央数据库,由组织内的各个分支和子单元访问.除了我知道如何解决的基于角色的权利(如运营商,管理员,审批人等)之外,还需要在组织单位级别过滤数据.
例如,请参阅下面描述的组织结构:

在这种情况下,任何在HQ级别工作的用户都可以访问用户有权访问的那些屏幕中的分支机构上的所有数据(基于角色).但是,分支1中的任何人只能看到1.1,1.2和1.3单元的数据.分支2也是如此.当我们将其推广到下一个级别时,Unit 1.1中的用户只能访问Unit 1.1的数据,而不能访问另一个的数据.
那么,使用域对象安全性或Spring Security中的任何其他机制可以实现这种访问控制吗?
我正在探索在Hibernate中使用拦截器进行必要过滤的可能性.在这方面的任何帮助也会有用吗?
我们是否有可能以编程方式找到Hibernate实体的主键字段(类似于JPA PersistenceUnitUtil)?
我正在编写一个基于Java的Web应用程序,它在实际生产环境中将由另一个应用程序进行前端处理,该应用程序将在请求到达我的应用程序之前设置某些HTTP请求标头.
但是,在开发环境中,我没有前端应用程序,我需要创建一个模拟相同行为的模拟Web应用程序.即这个模拟应用程序应该将请求标头和重定向或转发或任何我不知道的:)设置为我的应用程序中的某个页面.
我怎么能做到这一点?
我在 jBPM5 中创建了一个简单的流程定义,只有一个脚本任务。我想包含一个global变量,也就是说count,static在各种流程实例之间共享相同的值,但它不是一个常量,每个实例都可以更新该值,比如在流程的第一个任务中增加它。从脚本任务中,我想进行此修改(增量)并将其打印到标准输出。我该怎么做呢?
我有一个有趣的要求.
我们需要在Java存储过程中进行命令行交互.尽管使用dbms_java.grant_permission命令授予适当的权限,我遇到了java.io.IOException,我从System.in使用中读取java.io.InputStreamReader.
问题出在哪儿?
Java Source在这里:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.SQLException;
import oracle.jdbc.driver.OracleDriver;
public class ExecuteInteractiveBatch {
public static void aFunction() {
Connection connection = null;
try {
int rowFetched = 0;
connection = new OracleDriver().defaultConnection();
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("SELECT count(1) cnt from sometable where c = 2");
int count = 0;
if (rs.next()) {
count = rs.getInt(1);
}
rs.close(); …Run Code Online (Sandbox Code Playgroud)