initial public commit
This commit is contained in:
@ -0,0 +1,27 @@
|
||||
/*-
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* permission-handler
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
* ~~~~~~/licensing~~~~~~
|
||||
*/
|
||||
package ru.entaxy.esb.system.core.permission.handler;
|
||||
|
||||
public interface PermissionChecker {
|
||||
|
||||
public boolean check(int objectId, String objectType, String subjectId, String subjectType, String action);
|
||||
|
||||
public boolean check(int objectId, String objectType, String subjectId, String subjectType);
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
/*-
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* permission-handler
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2021 EmDev LLC
|
||||
* ==========
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
* ~~~~~~/licensing~~~~~~
|
||||
*/
|
||||
package ru.entaxy.esb.system.core.permission.handler;
|
||||
|
||||
import ru.entaxy.esb.system.core.permission.jpa.PermissionService;
|
||||
|
||||
public class PermissionCheckerImpl implements PermissionChecker {
|
||||
|
||||
private PermissionService permissionService;
|
||||
|
||||
public PermissionService getPermissionService() {
|
||||
return permissionService;
|
||||
}
|
||||
|
||||
public void setPermissionService(PermissionService permissionService) {
|
||||
this.permissionService = permissionService;
|
||||
}
|
||||
|
||||
public boolean check(int objectId, String objectType, String subjectId, String subjectType, String action) {
|
||||
return permissionService.existByAllParameters(objectId, objectType, subjectId, subjectType, action);
|
||||
}
|
||||
|
||||
public boolean check(int objectId, String objectType, String subjectId, String subjectType) {
|
||||
return check(objectId, objectType, subjectId, subjectType, null);
|
||||
}
|
||||
}
|
@ -0,0 +1,174 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~~~~~~licensing~~~~~~
|
||||
permission-handler
|
||||
==========
|
||||
Copyright (C) 2020 - 2021 EmDev LLC
|
||||
==========
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
~~~~~~/licensing~~~~~~
|
||||
-->
|
||||
|
||||
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
|
||||
xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 https://osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
|
||||
|
||||
<cm:property-placeholder
|
||||
persistent-id="ru.entaxy.esb.system.permission.handler" update-strategy="reload">
|
||||
<cm:default-properties>
|
||||
<cm:property name="mode.dev" value="false"/>
|
||||
</cm:default-properties>
|
||||
</cm:property-placeholder>
|
||||
|
||||
<reference id="permissionService"
|
||||
interface="ru.entaxy.esb.system.core.permission.jpa.PermissionService"
|
||||
timeout="30000"
|
||||
availability="mandatory"/>
|
||||
|
||||
<service ref="permissionChecker"
|
||||
interface="ru.entaxy.esb.system.core.permission.handler.PermissionChecker"/>
|
||||
|
||||
<bean id="permissionChecker"
|
||||
class="ru.entaxy.esb.system.core.permission.handler.PermissionCheckerImpl">
|
||||
<property name="permissionService" ref="permissionService"/>
|
||||
</bean>
|
||||
|
||||
<camelContext id="permission-handler-context" xmlns="http://camel.apache.org/schema/blueprint">
|
||||
|
||||
<route id="test-permission" autoStartup="{{mode.dev}}">
|
||||
<from uri="timer:test-permission?period=60&repeatCount=1"/>
|
||||
|
||||
<to uri="bean-fix:permissionService?method=add(1, 'system', '2', 'system', 'send')"/>
|
||||
<log message="CREATE PERMISSION RECORD ${body}"/>
|
||||
|
||||
<to uri="bean-fix:permissionService?method=getByAllParameters(1, 'system', '2', 'system', 'send')"/>
|
||||
<log message="${body}"/>
|
||||
<choice>
|
||||
<when>
|
||||
<simple>${body} != null</simple>
|
||||
<log message="GET EXISTING RECORD: TEST PASSED"/>
|
||||
</when>
|
||||
<otherwise>
|
||||
<log message="GET EXISTING RECORD: TEST FAILED"/>
|
||||
</otherwise>
|
||||
</choice>
|
||||
|
||||
<doTry>
|
||||
<to uri="bean-fix:permissionService?method=getByAllParameters(1, '4321', '4321', '4321', '4321')"/>
|
||||
<log message="GET NOT EXISTING RECORD: TEST FAILED"/>
|
||||
<doCatch>
|
||||
<exception>java.lang.Exception</exception>
|
||||
<log message="GET NOT EXISTING RECORD: TEST PASSED"/>
|
||||
</doCatch>
|
||||
</doTry>
|
||||
|
||||
<to uri="bean-fix:permissionService?method=remove(1, 'system', '2', 'system', 'send')"/>
|
||||
|
||||
<log message="DELETE PERMISSION RECORD ${body}"/>
|
||||
</route>
|
||||
|
||||
<route id="test-permission-component" autoStartup="{{mode.dev}}">
|
||||
<from uri="timer:test-has-permission?period=60&repeatCount=1&delay=30000"/>
|
||||
|
||||
<toD uri="permission:create?objectId=2&objectType=system&subjectId=3&subjectType=system&action=default"/>
|
||||
<log message="Create"/>
|
||||
<choice>
|
||||
<when>
|
||||
<simple>${body} != null</simple>
|
||||
<log message="CREATE ${body}: TEST PASSED"/>
|
||||
</when>
|
||||
<otherwise>
|
||||
<log message="CREATE ${body}: TEST FAILED"/>
|
||||
</otherwise>
|
||||
</choice>
|
||||
|
||||
<toD uri="permission:check?objectId=2&objectType=system&subjectId=3&subjectType=system&action=default"/>
|
||||
<choice>
|
||||
<when>
|
||||
<simple>${body}</simple>
|
||||
<log message="CHECK ${body}: TEST PASSED"/>
|
||||
</when>
|
||||
<otherwise>
|
||||
<log message="CHECK ${body}: TEST FAILED"/>
|
||||
</otherwise>
|
||||
</choice>
|
||||
|
||||
<toD uri="permission:create?objectId=2&objectType=system&subjectId=4&subjectType=system&action=send"/>
|
||||
<choice>
|
||||
<when>
|
||||
<simple>${body} != null</simple>
|
||||
<log message="CREATE ${body}: TEST PASSED"/>
|
||||
</when>
|
||||
<otherwise>
|
||||
<log message="CREATE ${body}: TEST FAILED"/>
|
||||
</otherwise>
|
||||
</choice>
|
||||
|
||||
<toD uri="permission:check?objectId=2&objectType=system&subjectId=4&subjectType=system&action=send"/>
|
||||
<choice>
|
||||
<when>
|
||||
<simple>${body}</simple>
|
||||
<log message="CHECK ${body}: TEST PASSED"/>
|
||||
</when>
|
||||
<otherwise>
|
||||
<log message="CHECK ${body}: TEST FAILED"/>
|
||||
</otherwise>
|
||||
</choice>
|
||||
|
||||
<toD uri="permission:getByAllParams?objectId=2&objectType=system&subjectId=3&subjectType=system&action=default"/>
|
||||
<log message="getByAllParams objectId=2&objectType=system&subjectId=3&subjectType=system&action=default"/>
|
||||
<choice>
|
||||
<when>
|
||||
<simple>${body} != null</simple>
|
||||
<log message="GET ${body}: TEST PASSED"/>
|
||||
</when>
|
||||
<otherwise>
|
||||
<log message="GET ${body}: TEST FAILED"/>
|
||||
</otherwise>
|
||||
</choice>
|
||||
|
||||
|
||||
<toD uri="permission:delete?objectId=2&objectType=system&subjectId=3&subjectType=system&action=default"/>
|
||||
<log message="DELETE ${body}"/>
|
||||
|
||||
<toD uri="permission:delete?objectId=2&objectType=system&subjectId=4&subjectType=system&action=send"/>
|
||||
<log message="DELETE ${body}"/>
|
||||
|
||||
<toD uri="permission:check?objectId=2&objectType=system&subjectId=3&subjectType=system&action=default"/>
|
||||
<choice>
|
||||
<when>
|
||||
<simple>${body} == false</simple>
|
||||
<log message="CHECK DELETED ${body}: TEST PASSED"/>
|
||||
</when>
|
||||
<otherwise>
|
||||
<log message="CHECK DELETED ${body}: TEST FAILED"/>
|
||||
</otherwise>
|
||||
</choice>
|
||||
|
||||
<toD uri="permission:check?objectId=2&objectType=system&subjectId=4&subjectType=system&action=send"/>
|
||||
<choice>
|
||||
<when>
|
||||
<simple>${body} == false</simple>
|
||||
<log message="CHECK DELETED ${body}: TEST PASSED"/>
|
||||
</when>
|
||||
<otherwise>
|
||||
<log message="CHECK DELETED ${body}: TEST FAILED"/>
|
||||
</otherwise>
|
||||
</choice>
|
||||
|
||||
</route>
|
||||
|
||||
</camelContext>
|
||||
|
||||
</blueprint>
|
Reference in New Issue
Block a user