rsanchez
2017-04-17 8a45ae67ed7371a9d28cbba6de188af3270562b6
#3529 feature - Securized access for readonly users
6 files modified
changed files
securis/src/main/java/net/curisit/securis/db/Application.java patch | view | blame | history
securis/src/main/java/net/curisit/securis/db/LicenseType.java patch | view | blame | history
securis/src/main/java/net/curisit/securis/services/ApplicationResource.java patch | view | blame | history
securis/src/main/java/net/curisit/securis/services/LicenseTypeResource.java patch | view | blame | history
securis/src/main/java/net/curisit/securis/services/OrganizationResource.java patch | view | blame | history
securis/src/main/java/net/curisit/securis/services/UserResource.java patch | view | blame | history
securis/src/main/java/net/curisit/securis/db/Application.java
....@@ -38,7 +38,8 @@
3838 @JsonIgnoreProperties(ignoreUnknown = true)
3939 @Entity
4040 @Table(name = "application")
41
-@NamedQueries({ @NamedQuery(name = "list-applications", query = "SELECT a FROM Application a") })
41
+@NamedQueries({ @NamedQuery(name = "list-applications", query = "SELECT a FROM Application a"),
42
+ @NamedQuery(name = "list-applications-by_ids", query = "SELECT a FROM Application a where id in :list_ids") })
4243 public class Application implements Serializable {
4344
4445 private static final Logger LOG = LogManager.getLogger(Application.class);
securis/src/main/java/net/curisit/securis/db/LicenseType.java
....@@ -38,6 +38,7 @@
3838 @Entity
3939 @Table(name = "license_type")
4040 @NamedQueries({ @NamedQuery(name = "list-license_types", query = "SELECT lt FROM LicenseType lt"),
41
+ @NamedQuery(name = "list-license_types-by_apps-id", query = "SELECT lt FROM LicenseType lt where lt.application.id in :list_ids"),
4142 @NamedQuery(name = "list-application-license_types", query = "SELECT lt FROM LicenseType lt where lt.application.id = :appId") })
4243 public class LicenseType implements Serializable {
4344
securis/src/main/java/net/curisit/securis/services/ApplicationResource.java
....@@ -72,12 +72,23 @@
7272 @Path("/")
7373 @Produces({ MediaType.APPLICATION_JSON })
7474 @Securable
75
- public Response index() {
75
+ public Response index(@Context BasicSecurityContext bsc) {
7676 LOG.info("Getting applications list ");
7777
7878 // EntityManager em = emProvider.get();
7979 em.clear();
80
- TypedQuery<Application> q = em.createNamedQuery("list-applications", Application.class);
80
+
81
+ TypedQuery<Application> q;
82
+ if (bsc.isUserInRole(BasicSecurityContext.ROL_ADMIN)) {
83
+ q = em.createNamedQuery("list-applications", Application.class);
84
+ } else {
85
+ if (bsc.getApplicationsIds() == null || bsc.getApplicationsIds().isEmpty()) {
86
+ return Response.ok().build();
87
+ }
88
+ q = em.createNamedQuery("list-applications-by_ids", Application.class);
89
+
90
+ q.setParameter("list_ids", bsc.getApplicationsIds());
91
+ }
8192 List<Application> list = q.getResultList();
8293
8394 return Response.ok(list).build();
securis/src/main/java/net/curisit/securis/services/LicenseTypeResource.java
....@@ -74,12 +74,22 @@
7474 @Path("/")
7575 @Produces({ MediaType.APPLICATION_JSON })
7676 @Securable
77
- public Response index() {
77
+ public Response index(@Context BasicSecurityContext bsc) {
7878 LOG.info("Getting license types list ");
7979
8080 // EntityManager em = emProvider.get();
8181 em.clear();
82
- TypedQuery<LicenseType> q = em.createNamedQuery("list-license_types", LicenseType.class);
82
+ TypedQuery<LicenseType> q;
83
+ if (bsc.isUserInRole(BasicSecurityContext.ROL_ADMIN)) {
84
+ q = em.createNamedQuery("list-license_types", LicenseType.class);
85
+ } else {
86
+ if (bsc.getApplicationsIds() == null || bsc.getApplicationsIds().isEmpty()) {
87
+ return Response.ok().build();
88
+ }
89
+ q = em.createNamedQuery("list-license_types-by_apps-id", LicenseType.class);
90
+
91
+ q.setParameter("list_ids", bsc.getApplicationsIds());
92
+ }
8393 List<LicenseType> list = q.getResultList();
8494
8595 return Response.ok(list).build();
securis/src/main/java/net/curisit/securis/services/OrganizationResource.java
....@@ -77,7 +77,12 @@
7777 LOG.info("GEtting all orgs for user: " + bsc.getUserPrincipal());
7878 q = em.createNamedQuery("list-organizations", Organization.class);
7979 } else {
80
- q = em.createNamedQuery("list-organizations", Organization.class);
80
+ if (bsc.getOrganizationsIds() == null || bsc.getOrganizationsIds().isEmpty()) {
81
+ return Response.ok().build();
82
+ } else {
83
+ q = em.createNamedQuery("list-organizations-by-ids", Organization.class);
84
+ q.setParameter("list_ids", bsc.getOrganizationsIds());
85
+ }
8186 }
8287
8388 List<Organization> list = q.getResultList();
securis/src/main/java/net/curisit/securis/services/UserResource.java
....@@ -76,7 +76,7 @@
7676 @GET
7777 @Path("/")
7878 @Produces({ MediaType.APPLICATION_JSON })
79
- @Securable
79
+ @Securable(roles = Rol.ADMIN)
8080 @RolesAllowed(BasicSecurityContext.ROL_ADMIN)
8181 public Response index() {
8282 LOG.info("Getting users list ");
....@@ -97,7 +97,7 @@
9797 @GET
9898 @Path("/{uid}")
9999 @Produces({ MediaType.APPLICATION_JSON })
100
- @Securable
100
+ @Securable(roles = Rol.ADMIN)
101101 @RolesAllowed(BasicSecurityContext.ROL_ADMIN)
102102 public Response get(@PathParam("uid") String uid, @HeaderParam(TokenHelper.TOKEN_HEADER_PĂ€RAM) String token) {
103103 LOG.info("Getting user data for id: {}: ", uid);