From 68da6fe739180263d25632d9bce536a3ab206132 Mon Sep 17 00:00:00 2001 From: Jared Nagle Date: Fri, 6 Sep 2013 19:07:51 +1000 Subject: [PATCH] latest changes --- .idea/compiler.xml | 2 +- ..._com_google_code_findbugs_jsr305_1_3_9.xml | 13 ++ .../Maven__com_google_guava_guava_11_0_2.xml | 13 ++ .idea/libraries/Maven__dom4j_dom4j_1_6_1.xml | 13 ++ .../Maven__javassist_javassist_3_12_1_GA.xml | 13 ++ ...ven__javax_activation_activation_1_1_1.xml | 13 ++ .../Maven__javax_ejb_ejb_api_3_0.xml | 13 ++ ...aven__javax_enterprise_cdi_api_1_0_SP4.xml | 13 ++ .../Maven__javax_inject_javax_inject_1.xml | 13 ++ ..._interceptor_javax_interceptor_api_1_2.xml | 13 ++ .../libraries/Maven__javax_javaee_api_6_0.xml | 13 ++ .../Maven__javax_jws_jsr181_api_1_0_MR1.xml | 13 ++ .../Maven__javax_mail_mail_1_4_4.xml | 13 ++ ...vax_validation_validation_api_1_0_0_GA.xml | 13 ++ ...ence_hibernate_jpa_2_0_api_1_0_1_Final.xml | 13 ++ ...ven__org_javassist_javassist_3_16_1_GA.xml | 13 ++ ...s_annotations_api_1_1_spec_1_0_1_Final.xml | 13 ++ ...ejb_jboss_ejb_api_3_1_spec_1_0_2_Final.xml | 13 ++ ...x_el_jboss_el_api_2_2_spec_1_0_2_Final.xml | 13 ++ ...loy_jboss_jad_api_1_2_spec_1_0_1_Final.xml | 13 ++ ...ces_jboss_jsf_api_2_1_spec_2_0_9_Final.xml | 13 ++ ..._interceptors_api_1_1_spec_1_0_1_Final.xml | 13 ++ ...jms_jboss_jms_api_1_1_spec_1_0_1_Final.xml | 13 ++ ...boss_j2eemgmt_api_1_1_spec_1_0_1_Final.xml | 13 ++ ...oss_connector_api_1_6_spec_1_0_1_Final.xml | 13 ++ ...rmi_jboss_rmi_api_1_0_spec_1_0_4_Final.xml | 13 ++ ...e_jboss_jaspi_api_1_0_spec_1_0_1_Final.xml | 13 ++ ...cc_jboss_jacc_api_1_4_spec_1_0_2_Final.xml | 13 ++ ...jboss_servlet_api_3_0_spec_1_0_2_Final.xml | 13 ++ ...jsp_jboss_jsp_api_2_2_spec_1_0_1_Final.xml | 13 ++ ...tl_jboss_jstl_api_1_2_spec_1_0_3_Final.xml | 13 ++ ...s_transaction_api_1_1_spec_1_0_1_Final.xml | 13 ++ ...s_jboss_jaxrs_api_1_1_spec_1_0_1_Final.xml | 13 ++ ...nd_jboss_jaxb_api_2_2_spec_1_0_4_Final.xml | 13 ++ ...ry_jboss_jaxr_api_1_0_spec_1_0_2_Final.xml | 13 ++ ..._jboss_jaxrpc_api_1_1_spec_1_0_1_Final.xml | 13 ++ ...ap_jboss_saaj_api_1_3_spec_1_0_2_Final.xml | 13 ++ ...s_jboss_jaxws_api_2_2_spec_2_0_1_Final.xml | 13 ++ ..._spec_jboss_javaee_all_6_0_3_0_2_Final.xml | 13 ++ ..._org_reflections_reflections_0_9_9_RC1.xml | 13 ++ .../Maven__xalan_xalan_2_7_1_jbossorg_2.xml | 13 ++ .../Maven__xml_apis_xml_apis_1_0_b2.xml | 13 ++ .idea/misc.xml | 137 ++++++++---------- .idea/modules.xml | 1 + pom.xml | 26 +++- .../annotations/UserHasPrivilege.java | 19 +++ .../annotations/UserHasPrivileges.java | 21 +++ .../interceptor/PrivilegeInterceptor.java | 28 ++++ .../UserHasPrivilegeServiceProvider.java | 66 +++++++++ .../UserGroupPrivilegeMappingService.java | 59 ++++++++ .../services/UserHasPrivilegeService.java | 29 ++++ ...naglecode.services.UserHasPrivilegeService | 1 + testEJBProject/pom.xml | 34 +++++ ...rGroupPrivilegeMappingServiceProvider.java | 39 +++++ ...code.services.GroupPrivilegeMappingService | 1 + 55 files changed, 919 insertions(+), 77 deletions(-) create mode 100644 .idea/libraries/Maven__com_google_code_findbugs_jsr305_1_3_9.xml create mode 100644 .idea/libraries/Maven__com_google_guava_guava_11_0_2.xml create mode 100644 .idea/libraries/Maven__dom4j_dom4j_1_6_1.xml create mode 100644 .idea/libraries/Maven__javassist_javassist_3_12_1_GA.xml create mode 100644 .idea/libraries/Maven__javax_activation_activation_1_1_1.xml create mode 100644 .idea/libraries/Maven__javax_ejb_ejb_api_3_0.xml create mode 100644 .idea/libraries/Maven__javax_enterprise_cdi_api_1_0_SP4.xml create mode 100644 .idea/libraries/Maven__javax_inject_javax_inject_1.xml create mode 100644 .idea/libraries/Maven__javax_interceptor_javax_interceptor_api_1_2.xml create mode 100644 .idea/libraries/Maven__javax_javaee_api_6_0.xml create mode 100644 .idea/libraries/Maven__javax_jws_jsr181_api_1_0_MR1.xml create mode 100644 .idea/libraries/Maven__javax_mail_mail_1_4_4.xml create mode 100644 .idea/libraries/Maven__javax_validation_validation_api_1_0_0_GA.xml create mode 100644 .idea/libraries/Maven__org_hibernate_javax_persistence_hibernate_jpa_2_0_api_1_0_1_Final.xml create mode 100644 .idea/libraries/Maven__org_javassist_javassist_3_16_1_GA.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_annotation_jboss_annotations_api_1_1_spec_1_0_1_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_ejb_jboss_ejb_api_3_1_spec_1_0_2_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_el_jboss_el_api_2_2_spec_1_0_2_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_enterprise_deploy_jboss_jad_api_1_2_spec_1_0_1_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_faces_jboss_jsf_api_2_1_spec_2_0_9_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_interceptor_jboss_interceptors_api_1_1_spec_1_0_1_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_jms_jboss_jms_api_1_1_spec_1_0_1_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_management_j2ee_jboss_j2eemgmt_api_1_1_spec_1_0_1_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_resource_jboss_connector_api_1_6_spec_1_0_1_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_rmi_jboss_rmi_api_1_0_spec_1_0_4_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_security_auth_message_jboss_jaspi_api_1_0_spec_1_0_1_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_security_jacc_jboss_jacc_api_1_4_spec_1_0_2_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_servlet_jboss_servlet_api_3_0_spec_1_0_2_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_servlet_jsp_jboss_jsp_api_2_2_spec_1_0_1_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_servlet_jstl_jboss_jstl_api_1_2_spec_1_0_3_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_transaction_jboss_transaction_api_1_1_spec_1_0_1_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_ws_rs_jboss_jaxrs_api_1_1_spec_1_0_1_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_xml_bind_jboss_jaxb_api_2_2_spec_1_0_4_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_xml_registry_jboss_jaxr_api_1_0_spec_1_0_2_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_xml_rpc_jboss_jaxrpc_api_1_1_spec_1_0_1_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_xml_soap_jboss_saaj_api_1_3_spec_1_0_2_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_javax_xml_ws_jboss_jaxws_api_2_2_spec_2_0_1_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_spec_jboss_javaee_all_6_0_3_0_2_Final.xml create mode 100644 .idea/libraries/Maven__org_reflections_reflections_0_9_9_RC1.xml create mode 100644 .idea/libraries/Maven__xalan_xalan_2_7_1_jbossorg_2.xml create mode 100644 .idea/libraries/Maven__xml_apis_xml_apis_1_0_b2.xml create mode 100644 src/main/java/com/thenaglecode/annotations/UserHasPrivilege.java create mode 100644 src/main/java/com/thenaglecode/annotations/UserHasPrivileges.java create mode 100644 src/main/java/com/thenaglecode/interceptor/PrivilegeInterceptor.java create mode 100644 src/main/java/com/thenaglecode/serviceProviders/UserHasPrivilegeServiceProvider.java create mode 100644 src/main/java/com/thenaglecode/services/UserGroupPrivilegeMappingService.java create mode 100644 src/main/java/com/thenaglecode/services/UserHasPrivilegeService.java create mode 100644 src/main/resources/META-INF/services/com.thenaglecode.services.UserHasPrivilegeService create mode 100644 testEJBProject/pom.xml create mode 100644 testEJBProject/src/main/java/com/thenaglecode/serviceProviders/UserGroupPrivilegeMappingServiceProvider.java create mode 100644 testEJBProject/src/main/resources/META-INF/services/com.thenaglecode.services.GroupPrivilegeMappingService diff --git a/.idea/compiler.xml b/.idea/compiler.xml index bb0048d..4116b4b 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -22,7 +22,7 @@ - + diff --git a/.idea/libraries/Maven__com_google_code_findbugs_jsr305_1_3_9.xml b/.idea/libraries/Maven__com_google_code_findbugs_jsr305_1_3_9.xml new file mode 100644 index 0000000..0e66824 --- /dev/null +++ b/.idea/libraries/Maven__com_google_code_findbugs_jsr305_1_3_9.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_google_guava_guava_11_0_2.xml b/.idea/libraries/Maven__com_google_guava_guava_11_0_2.xml new file mode 100644 index 0000000..01a573a --- /dev/null +++ b/.idea/libraries/Maven__com_google_guava_guava_11_0_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__dom4j_dom4j_1_6_1.xml b/.idea/libraries/Maven__dom4j_dom4j_1_6_1.xml new file mode 100644 index 0000000..14681ee --- /dev/null +++ b/.idea/libraries/Maven__dom4j_dom4j_1_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__javassist_javassist_3_12_1_GA.xml b/.idea/libraries/Maven__javassist_javassist_3_12_1_GA.xml new file mode 100644 index 0000000..e5be13e --- /dev/null +++ b/.idea/libraries/Maven__javassist_javassist_3_12_1_GA.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__javax_activation_activation_1_1_1.xml b/.idea/libraries/Maven__javax_activation_activation_1_1_1.xml new file mode 100644 index 0000000..bde4d35 --- /dev/null +++ b/.idea/libraries/Maven__javax_activation_activation_1_1_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__javax_ejb_ejb_api_3_0.xml b/.idea/libraries/Maven__javax_ejb_ejb_api_3_0.xml new file mode 100644 index 0000000..c882e37 --- /dev/null +++ b/.idea/libraries/Maven__javax_ejb_ejb_api_3_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__javax_enterprise_cdi_api_1_0_SP4.xml b/.idea/libraries/Maven__javax_enterprise_cdi_api_1_0_SP4.xml new file mode 100644 index 0000000..93017de --- /dev/null +++ b/.idea/libraries/Maven__javax_enterprise_cdi_api_1_0_SP4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__javax_inject_javax_inject_1.xml b/.idea/libraries/Maven__javax_inject_javax_inject_1.xml new file mode 100644 index 0000000..93cf65a --- /dev/null +++ b/.idea/libraries/Maven__javax_inject_javax_inject_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__javax_interceptor_javax_interceptor_api_1_2.xml b/.idea/libraries/Maven__javax_interceptor_javax_interceptor_api_1_2.xml new file mode 100644 index 0000000..6458069 --- /dev/null +++ b/.idea/libraries/Maven__javax_interceptor_javax_interceptor_api_1_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__javax_javaee_api_6_0.xml b/.idea/libraries/Maven__javax_javaee_api_6_0.xml new file mode 100644 index 0000000..1aad900 --- /dev/null +++ b/.idea/libraries/Maven__javax_javaee_api_6_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__javax_jws_jsr181_api_1_0_MR1.xml b/.idea/libraries/Maven__javax_jws_jsr181_api_1_0_MR1.xml new file mode 100644 index 0000000..26ba706 --- /dev/null +++ b/.idea/libraries/Maven__javax_jws_jsr181_api_1_0_MR1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__javax_mail_mail_1_4_4.xml b/.idea/libraries/Maven__javax_mail_mail_1_4_4.xml new file mode 100644 index 0000000..733c711 --- /dev/null +++ b/.idea/libraries/Maven__javax_mail_mail_1_4_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__javax_validation_validation_api_1_0_0_GA.xml b/.idea/libraries/Maven__javax_validation_validation_api_1_0_0_GA.xml new file mode 100644 index 0000000..4b644e9 --- /dev/null +++ b/.idea/libraries/Maven__javax_validation_validation_api_1_0_0_GA.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hibernate_javax_persistence_hibernate_jpa_2_0_api_1_0_1_Final.xml b/.idea/libraries/Maven__org_hibernate_javax_persistence_hibernate_jpa_2_0_api_1_0_1_Final.xml new file mode 100644 index 0000000..352de38 --- /dev/null +++ b/.idea/libraries/Maven__org_hibernate_javax_persistence_hibernate_jpa_2_0_api_1_0_1_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_javassist_javassist_3_16_1_GA.xml b/.idea/libraries/Maven__org_javassist_javassist_3_16_1_GA.xml new file mode 100644 index 0000000..7b4e548 --- /dev/null +++ b/.idea/libraries/Maven__org_javassist_javassist_3_16_1_GA.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_annotation_jboss_annotations_api_1_1_spec_1_0_1_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_annotation_jboss_annotations_api_1_1_spec_1_0_1_Final.xml new file mode 100644 index 0000000..26e0a51 --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_annotation_jboss_annotations_api_1_1_spec_1_0_1_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_ejb_jboss_ejb_api_3_1_spec_1_0_2_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_ejb_jboss_ejb_api_3_1_spec_1_0_2_Final.xml new file mode 100644 index 0000000..703b15b --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_ejb_jboss_ejb_api_3_1_spec_1_0_2_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_el_jboss_el_api_2_2_spec_1_0_2_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_el_jboss_el_api_2_2_spec_1_0_2_Final.xml new file mode 100644 index 0000000..448d90c --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_el_jboss_el_api_2_2_spec_1_0_2_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_enterprise_deploy_jboss_jad_api_1_2_spec_1_0_1_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_enterprise_deploy_jboss_jad_api_1_2_spec_1_0_1_Final.xml new file mode 100644 index 0000000..f1884ed --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_enterprise_deploy_jboss_jad_api_1_2_spec_1_0_1_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_faces_jboss_jsf_api_2_1_spec_2_0_9_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_faces_jboss_jsf_api_2_1_spec_2_0_9_Final.xml new file mode 100644 index 0000000..fd07cf4 --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_faces_jboss_jsf_api_2_1_spec_2_0_9_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_interceptor_jboss_interceptors_api_1_1_spec_1_0_1_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_interceptor_jboss_interceptors_api_1_1_spec_1_0_1_Final.xml new file mode 100644 index 0000000..ffccbe4 --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_interceptor_jboss_interceptors_api_1_1_spec_1_0_1_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_jms_jboss_jms_api_1_1_spec_1_0_1_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_jms_jboss_jms_api_1_1_spec_1_0_1_Final.xml new file mode 100644 index 0000000..1e5542a --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_jms_jboss_jms_api_1_1_spec_1_0_1_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_management_j2ee_jboss_j2eemgmt_api_1_1_spec_1_0_1_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_management_j2ee_jboss_j2eemgmt_api_1_1_spec_1_0_1_Final.xml new file mode 100644 index 0000000..7284b62 --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_management_j2ee_jboss_j2eemgmt_api_1_1_spec_1_0_1_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_resource_jboss_connector_api_1_6_spec_1_0_1_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_resource_jboss_connector_api_1_6_spec_1_0_1_Final.xml new file mode 100644 index 0000000..4d4395b --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_resource_jboss_connector_api_1_6_spec_1_0_1_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_rmi_jboss_rmi_api_1_0_spec_1_0_4_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_rmi_jboss_rmi_api_1_0_spec_1_0_4_Final.xml new file mode 100644 index 0000000..96bd376 --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_rmi_jboss_rmi_api_1_0_spec_1_0_4_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_security_auth_message_jboss_jaspi_api_1_0_spec_1_0_1_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_security_auth_message_jboss_jaspi_api_1_0_spec_1_0_1_Final.xml new file mode 100644 index 0000000..131fa0b --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_security_auth_message_jboss_jaspi_api_1_0_spec_1_0_1_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_security_jacc_jboss_jacc_api_1_4_spec_1_0_2_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_security_jacc_jboss_jacc_api_1_4_spec_1_0_2_Final.xml new file mode 100644 index 0000000..be85f48 --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_security_jacc_jboss_jacc_api_1_4_spec_1_0_2_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_servlet_jboss_servlet_api_3_0_spec_1_0_2_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_servlet_jboss_servlet_api_3_0_spec_1_0_2_Final.xml new file mode 100644 index 0000000..38997b3 --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_servlet_jboss_servlet_api_3_0_spec_1_0_2_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_servlet_jsp_jboss_jsp_api_2_2_spec_1_0_1_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_servlet_jsp_jboss_jsp_api_2_2_spec_1_0_1_Final.xml new file mode 100644 index 0000000..38a9ce5 --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_servlet_jsp_jboss_jsp_api_2_2_spec_1_0_1_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_servlet_jstl_jboss_jstl_api_1_2_spec_1_0_3_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_servlet_jstl_jboss_jstl_api_1_2_spec_1_0_3_Final.xml new file mode 100644 index 0000000..025ad9b --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_servlet_jstl_jboss_jstl_api_1_2_spec_1_0_3_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_transaction_jboss_transaction_api_1_1_spec_1_0_1_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_transaction_jboss_transaction_api_1_1_spec_1_0_1_Final.xml new file mode 100644 index 0000000..ed44624 --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_transaction_jboss_transaction_api_1_1_spec_1_0_1_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_ws_rs_jboss_jaxrs_api_1_1_spec_1_0_1_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_ws_rs_jboss_jaxrs_api_1_1_spec_1_0_1_Final.xml new file mode 100644 index 0000000..0f43b5f --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_ws_rs_jboss_jaxrs_api_1_1_spec_1_0_1_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_xml_bind_jboss_jaxb_api_2_2_spec_1_0_4_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_xml_bind_jboss_jaxb_api_2_2_spec_1_0_4_Final.xml new file mode 100644 index 0000000..2fc5a02 --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_xml_bind_jboss_jaxb_api_2_2_spec_1_0_4_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_xml_registry_jboss_jaxr_api_1_0_spec_1_0_2_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_xml_registry_jboss_jaxr_api_1_0_spec_1_0_2_Final.xml new file mode 100644 index 0000000..86c1115 --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_xml_registry_jboss_jaxr_api_1_0_spec_1_0_2_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_xml_rpc_jboss_jaxrpc_api_1_1_spec_1_0_1_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_xml_rpc_jboss_jaxrpc_api_1_1_spec_1_0_1_Final.xml new file mode 100644 index 0000000..339886a --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_xml_rpc_jboss_jaxrpc_api_1_1_spec_1_0_1_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_xml_soap_jboss_saaj_api_1_3_spec_1_0_2_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_xml_soap_jboss_saaj_api_1_3_spec_1_0_2_Final.xml new file mode 100644 index 0000000..5a20bf4 --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_xml_soap_jboss_saaj_api_1_3_spec_1_0_2_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_xml_ws_jboss_jaxws_api_2_2_spec_2_0_1_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_xml_ws_jboss_jaxws_api_2_2_spec_2_0_1_Final.xml new file mode 100644 index 0000000..c4e2298 --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_javax_xml_ws_jboss_jaxws_api_2_2_spec_2_0_1_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_jboss_javaee_all_6_0_3_0_2_Final.xml b/.idea/libraries/Maven__org_jboss_spec_jboss_javaee_all_6_0_3_0_2_Final.xml new file mode 100644 index 0000000..8399a0b --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_spec_jboss_javaee_all_6_0_3_0_2_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_reflections_reflections_0_9_9_RC1.xml b/.idea/libraries/Maven__org_reflections_reflections_0_9_9_RC1.xml new file mode 100644 index 0000000..95dd64a --- /dev/null +++ b/.idea/libraries/Maven__org_reflections_reflections_0_9_9_RC1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__xalan_xalan_2_7_1_jbossorg_2.xml b/.idea/libraries/Maven__xalan_xalan_2_7_1_jbossorg_2.xml new file mode 100644 index 0000000..e7b507f --- /dev/null +++ b/.idea/libraries/Maven__xalan_xalan_2_7_1_jbossorg_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__xml_apis_xml_apis_1_0_b2.xml b/.idea/libraries/Maven__xml_apis_xml_apis_1_0_b2.xml new file mode 100644 index 0000000..c36e717 --- /dev/null +++ b/.idea/libraries/Maven__xml_apis_xml_apis_1_0_b2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index d51f9ff..a302ac7 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,5 +1,8 @@ + + + + + + + + - - - - + + + + - - - - + + - - + + - + - - - - - 1.7 - - - - - - - diff --git a/.idea/modules.xml b/.idea/modules.xml index fb010c5..3029bff 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,6 +2,7 @@ + diff --git a/pom.xml b/pom.xml index 4ec29c3..81fdf5b 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,31 @@ user-group-privileges-ejb3-util user-group-privileges-ejb3-util + pom 0.0.1-Pre-alpha - + + + org.reflections + reflections + 0.9.9-RC1 + + + javassist + javassist + 3.12.1.GA + + + javax.interceptor + javax.interceptor-api + 1.2 + provided + + + javax.ejb + ejb-api + 3.0 + provided + + \ No newline at end of file diff --git a/src/main/java/com/thenaglecode/annotations/UserHasPrivilege.java b/src/main/java/com/thenaglecode/annotations/UserHasPrivilege.java new file mode 100644 index 0000000..f7fee00 --- /dev/null +++ b/src/main/java/com/thenaglecode/annotations/UserHasPrivilege.java @@ -0,0 +1,19 @@ +package com.thenaglecode.annotations; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import static java.lang.annotation.ElementType.*; + +/** + * Created with IntelliJ IDEA. + * User: jxnagl + * Date: 6/09/13 + * Time: 4:02 PM + * //todo implement + */ +@Retention(RetentionPolicy.RUNTIME) +@Target({METHOD, TYPE}) +public @interface UserHasPrivilege { + String privilege(); +} diff --git a/src/main/java/com/thenaglecode/annotations/UserHasPrivileges.java b/src/main/java/com/thenaglecode/annotations/UserHasPrivileges.java new file mode 100644 index 0000000..8932907 --- /dev/null +++ b/src/main/java/com/thenaglecode/annotations/UserHasPrivileges.java @@ -0,0 +1,21 @@ +package com.thenaglecode.annotations; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.TYPE; + +/** + * Created with IntelliJ IDEA. + * User: jxnagl + * Date: 6/09/13 + * Time: 4:03 PM + * //todo implement + */ +@Retention(RetentionPolicy.RUNTIME) +@Target({METHOD, TYPE}) +public @interface UserHasPrivileges { + String[] privileges(); +} diff --git a/src/main/java/com/thenaglecode/interceptor/PrivilegeInterceptor.java b/src/main/java/com/thenaglecode/interceptor/PrivilegeInterceptor.java new file mode 100644 index 0000000..0cfd732 --- /dev/null +++ b/src/main/java/com/thenaglecode/interceptor/PrivilegeInterceptor.java @@ -0,0 +1,28 @@ +package com.thenaglecode.interceptor; + +import com.thenaglecode.services.UserHasPrivilegeService; + +import javax.annotation.Resource; +import javax.ejb.SessionContext; +import javax.interceptor.AroundInvoke; +import javax.interceptor.InvocationContext; + +/** + * Created with IntelliJ IDEA. + * User: jxnagl + * Date: 6/09/13 + * Time: 5:40 PM + * //todo implement + */ +public class PrivilegeInterceptor { + + @Resource + SessionContext context; + + private static final UserHasPrivilegeService service = UserHasPrivilegeService.getUserHasPrivilegeService(); + + @AroundInvoke + public Object securityCheck(InvocationContext ctx) throws Exception { + + } +} diff --git a/src/main/java/com/thenaglecode/serviceProviders/UserHasPrivilegeServiceProvider.java b/src/main/java/com/thenaglecode/serviceProviders/UserHasPrivilegeServiceProvider.java new file mode 100644 index 0000000..c6535a7 --- /dev/null +++ b/src/main/java/com/thenaglecode/serviceProviders/UserHasPrivilegeServiceProvider.java @@ -0,0 +1,66 @@ +package com.thenaglecode.serviceProviders; + +import com.thenaglecode.services.UserGroupPrivilegeMappingService; +import com.thenaglecode.services.UserHasPrivilegeService; + +import javax.annotation.processing.ProcessingEnvironment; +import javax.annotation.processing.RoundEnvironment; +import javax.annotation.processing.SupportedAnnotationTypes; +import javax.annotation.security.DenyAll; +import javax.lang.model.element.TypeElement; +import java.util.List; +import java.util.Set; + +/** + * Created with IntelliJ IDEA. + * User: jxnagl + * Date: 6/09/13 + * Time: 1:47 PM + * //todo implement + */ +@SupportedAnnotationTypes(value = { + UserHasPrivilegeServiceProvider.USER_HAS_PRIVILEGE_ANNOTATION, + UserHasPrivilegeServiceProvider.USER_HAS_PRIVILEGE_ANNOTATION_PLURAL}) +public class UserHasPrivilegeServiceProvider extends UserHasPrivilegeService { + + public static final String USER_HAS_PRIVILEGE_ANNOTATION = "com.thenaglecode.annotations.UserHasPrivilege"; + public static final String USER_HAS_PRIVILEGE_ANNOTATION_PLURAL = "com.thenaglecode.annotations.UserHasPrivileges"; + + UserGroupPrivilegeMappingService userGroupPrivilegeMappingService; + + public void setUserGroupPrivilegeMappingService(UserGroupPrivilegeMappingService userGroupPrivilegeMappingService) { + this.userGroupPrivilegeMappingService = userGroupPrivilegeMappingService; + } + + public void refreshPrivilegeGroupMap() throws NullPointerException { + if (userGroupPrivilegeMappingService == null) { + throw new NullPointerException( + "userGroupPrivilegeMappingService was null, did you forget to call " + + "setUserGroupPrivilegeMappingService(UserGroupPrivilegeMappingService)?"); + } + userGroupPrivilegeMappingService.refresh(); + } + + public boolean GroupsHavePrivilege(String privilege, List groups) { + for (String group : groups) { + if (userGroupPrivilegeMappingService.groupHasPrivilege(group, privilege)) + return true; + } + return false; + } + + @Override + public boolean process(Set annotations, RoundEnvironment roundEnv) { + for(TypeElement annotation : annotations){ + if(annotation.getQualifiedName()) + } + } + + @Override + public synchronized void init(ProcessingEnvironment processingEnv) { + super.init(processingEnv); + UserGroupPrivilegeMappingService service = UserGroupPrivilegeMappingService.getUserGroupPrivilegeMappingService(); + service.refresh(); + setUserGroupPrivilegeMappingService(service); + } +} diff --git a/src/main/java/com/thenaglecode/services/UserGroupPrivilegeMappingService.java b/src/main/java/com/thenaglecode/services/UserGroupPrivilegeMappingService.java new file mode 100644 index 0000000..1ccdec5 --- /dev/null +++ b/src/main/java/com/thenaglecode/services/UserGroupPrivilegeMappingService.java @@ -0,0 +1,59 @@ +package com.thenaglecode.services; + +import com.sun.istack.internal.NotNull; + +import java.util.List; +import java.util.ServiceConfigurationError; +import java.util.ServiceLoader; + +/** + * Created with IntelliJ IDEA. + * User: jxnagl + * Date: 6/09/13 + * Time: 3:34 PM + */ +public abstract class UserGroupPrivilegeMappingService { + + private static ServiceLoader groupPrivilegeMappingServiceLoader + = ServiceLoader.load(UserGroupPrivilegeMappingService.class); + + public static UserGroupPrivilegeMappingService getUserGroupPrivilegeMappingService() throws ServiceConfigurationError { + for (UserGroupPrivilegeMappingService service : groupPrivilegeMappingServiceLoader) { + if (service != null) { + return service; + } + } + return null; + } + + /** + * this method will return whether or not the specified group contains the specified privilege. implementations + * of this will generally use a cached map to determine this that can be refreshed via the {@link #refresh()} + * function. + * + * @param group the group to search for + * @param privilege the privilege that needs checking + * @return whether or not the group has the privilege specified. + */ + public abstract boolean groupHasPrivilege(@NotNull String group, @NotNull String privilege); + + /** + * This is used to determine what groups a user belongs to, as it is unwise to cache this sort of information + * considering that an application's user base may be large, + * it is advised that implementations of this method perform a call to their underlying datastore (e.g. a direct + * call to the database) to determine this information. + * + * + * @param principal the unique identifier for the Principal user to search against. + * @return a list of groups that this user belongs to. + */ + public abstract List groupsOfUser(@NotNull String principal); + + /** + * For those that wish to cache their groupPrivilege mapping information, they can override this method for + * the ability to refresh information. + */ + public void refresh(){ + //do nothing + } +} diff --git a/src/main/java/com/thenaglecode/services/UserHasPrivilegeService.java b/src/main/java/com/thenaglecode/services/UserHasPrivilegeService.java new file mode 100644 index 0000000..cd5d444 --- /dev/null +++ b/src/main/java/com/thenaglecode/services/UserHasPrivilegeService.java @@ -0,0 +1,29 @@ +package com.thenaglecode.services; + +import javax.annotation.processing.AbstractProcessor; +import java.util.List; +import java.util.ServiceConfigurationError; +import java.util.ServiceLoader; + +/** + * Created with IntelliJ IDEA. + * User: jxnagl + * Date: 6/09/13 + * Time: 1:46 PM + */ +public abstract class UserHasPrivilegeService extends AbstractProcessor { + + private static ServiceLoader userHasPrivilegeServiceLoader + = ServiceLoader.load(UserHasPrivilegeService.class); + + public static UserHasPrivilegeService getUserHasPrivilegeService() throws ServiceConfigurationError { + for(UserHasPrivilegeService service : userHasPrivilegeServiceLoader){ + if(service != null) return service; + } + return null; + } + + public abstract void setUserGroupPrivilegeMappingService(UserGroupPrivilegeMappingService userGroupPrivilegeMappingService); + public abstract void refreshPrivilegeGroupMap() throws NullPointerException; + public abstract boolean GroupsHavePrivilege(String privilege, List groups); +} diff --git a/src/main/resources/META-INF/services/com.thenaglecode.services.UserHasPrivilegeService b/src/main/resources/META-INF/services/com.thenaglecode.services.UserHasPrivilegeService new file mode 100644 index 0000000..31fde27 --- /dev/null +++ b/src/main/resources/META-INF/services/com.thenaglecode.services.UserHasPrivilegeService @@ -0,0 +1 @@ +com.thenaglecode.serviceProviders.UserHasPrivilegeServiceProvider # the default provider \ No newline at end of file diff --git a/testEJBProject/pom.xml b/testEJBProject/pom.xml new file mode 100644 index 0000000..a76a576 --- /dev/null +++ b/testEJBProject/pom.xml @@ -0,0 +1,34 @@ + + + + 4.0.0 + + com.example + testEJBProject + + + + org.jboss.spec + jboss-javaee-all-6.0 + 3.0.2.Final + provided + + + com.thenaglecode + user-group-privilege-ejb3-util + 0.0.1-Pre-alpha + + + + + + + org.jboss.as.plugins + jboss-as-maven-plugin + 7.4.Final + + + + \ No newline at end of file diff --git a/testEJBProject/src/main/java/com/thenaglecode/serviceProviders/UserGroupPrivilegeMappingServiceProvider.java b/testEJBProject/src/main/java/com/thenaglecode/serviceProviders/UserGroupPrivilegeMappingServiceProvider.java new file mode 100644 index 0000000..4f38d1f --- /dev/null +++ b/testEJBProject/src/main/java/com/thenaglecode/serviceProviders/UserGroupPrivilegeMappingServiceProvider.java @@ -0,0 +1,39 @@ +package com.thenaglecode.serviceProviders; + +import com.thenaglecode.services.UserGroupPrivilegeMappingService; + +import javax.validation.constraints.NotNull; +import java.util.ArrayList; +import java.util.List; + +/** + * Created with IntelliJ IDEA. + * User: jxnagl + * Date: 6/09/13 + * Time: 5:33 PM + * //todo implement + */ +public class UserGroupPrivilegeMappingServiceProvider extends UserGroupPrivilegeMappingService { + + private static List TEST_GROUP_LIST = new ArrayList<>(); + + static { + TEST_GROUP_LIST.add("silly"); + } + + @Override + public boolean groupHasPrivilege(String group, String privilege) { + return "silly".equals(group) && "anything".equals(privilege); + } + + @Override + public List groupsOfUser(@NotNull String principal) { + if("someone".equals(principal)) return TEST_GROUP_LIST; + else return new ArrayList(); + } + + @Override + public void refresh() { + //do nothing + } +} diff --git a/testEJBProject/src/main/resources/META-INF/services/com.thenaglecode.services.GroupPrivilegeMappingService b/testEJBProject/src/main/resources/META-INF/services/com.thenaglecode.services.GroupPrivilegeMappingService new file mode 100644 index 0000000..013b923 --- /dev/null +++ b/testEJBProject/src/main/resources/META-INF/services/com.thenaglecode.services.GroupPrivilegeMappingService @@ -0,0 +1 @@ +com.thenaglecode.serviceProviders.GroupPrivilegeMappingService # the mapping service required by the @UserHasPrivilege annotation \ No newline at end of file