Roberto Sánchez
2014-01-22 2fd6ff883fa6ee5ece773c69fce66f3cd03c86a5
#396 feature - Refactoring JavaScript resources, relocating third party
libraries from own libs
4 files modified
14 files renamed
changed files
securis/pom.xml patch | view | blame | history
securis/src/main/java/net/curisit/securis/DefaultExceptionHandler.java patch | view | blame | history
securis/src/main/java/net/curisit/securis/services/LicenseServices.java patch | view | blame | history
securis/src/main/resources/static/js/angular/angular-animate.min.js patch | view | blame | history
securis/src/main/resources/static/js/angular/angular-resource.min.js patch | view | blame | history
securis/src/main/resources/static/js/angular/angular-route.min.js patch | view | blame | history
securis/src/main/resources/static/js/angular/angular.min.js patch | view | blame | history
securis/src/main/resources/static/js/angular/angular.min.js.map patch | view | blame | history
securis/src/main/resources/static/js/angular/chosen.js patch | view | blame | history
securis/src/main/resources/static/js/angular/toaster.js patch | view | blame | history
securis/src/main/resources/static/js/vendor/bootstrap-dialog.js patch | view | blame | history
securis/src/main/resources/static/js/vendor/bootstrap.min.js patch | view | blame | history
securis/src/main/resources/static/js/vendor/glyphicons-halflings-regular.woff patch | view | blame | history
securis/src/main/resources/static/js/vendor/jquery.min.js patch | view | blame | history
securis/src/main/resources/static/js/vendor/jquery.min.map patch | view | blame | history
securis/src/main/resources/static/js/vendor/store.js patch | view | blame | history
securis/src/main/resources/static/js/vendor/store.min.js patch | view | blame | history
securis/src/main/resources/static/main.html patch | view | blame | history
securis/pom.xml
....@@ -33,12 +33,17 @@
3333 </dependency>
3434 <dependency>
3535 <groupId>org.jboss.resteasy</groupId>
36
- <artifactId>resteasy-jaxrs</artifactId>
36
+ <artifactId>resteasy-jackson-provider</artifactId>
3737 <version>3.0.5.Final</version>
3838 </dependency>
3939 <dependency>
4040 <groupId>org.jboss.resteasy</groupId>
41
- <artifactId>resteasy-jackson-provider</artifactId>
41
+ <artifactId>resteasy-multipart-provider</artifactId>
42
+ <version>3.0.5.Final</version>
43
+ </dependency>
44
+ <dependency>
45
+ <groupId>org.jboss.resteasy</groupId>
46
+ <artifactId>resteasy-jaxrs</artifactId>
4247 <version>3.0.5.Final</version>
4348 </dependency>
4449 </dependencies>
securis/src/main/java/net/curisit/securis/DefaultExceptionHandler.java
....@@ -1,28 +1,45 @@
11 package net.curisit.securis;
22
3
+import javax.servlet.http.HttpServletRequest;
34 import javax.ws.rs.ForbiddenException;
5
+import javax.ws.rs.core.Context;
46 import javax.ws.rs.core.MediaType;
57 import javax.ws.rs.core.Response;
68 import javax.ws.rs.core.Response.Status;
9
+import javax.ws.rs.core.SecurityContext;
710 import javax.ws.rs.ext.ExceptionMapper;
811 import javax.ws.rs.ext.Provider;
912
13
+import org.slf4j.Logger;
14
+import org.slf4j.LoggerFactory;
15
+
1016 @Provider
1117 public class DefaultExceptionHandler implements ExceptionMapper<Exception> {
18
+ private static final Logger log = LoggerFactory.getLogger(DefaultExceptionHandler.class);
1219
1320 public static final String ERROR_MESSAGE_HEADER = "X-SECURIS-ERROR";
1421
1522 public DefaultExceptionHandler() {
16
- MainApp.log.info("Creating DefaultExceptionHandler ");
23
+ log.info("Creating DefaultExceptionHandler ");
1724 }
25
+
26
+ @Context
27
+ HttpServletRequest request;
28
+ @Context
29
+ SecurityContext bsc;
1830
1931 @Override
2032 public Response toResponse(Exception e) {
2133 // log.info("Creating DefaultExceptionHandler ");
2234 // e.printStackTrace();
23
- if (e instanceof ForbiddenException)
35
+ if (e instanceof ForbiddenException) {
36
+ log.warn("Unauthorized access to {}, user: {}", request.getPathInfo(), bsc.getUserPrincipal());
2437 return Response.status(Status.UNAUTHORIZED).header(ERROR_MESSAGE_HEADER, "Unathorized access to the application").type(MediaType.APPLICATION_JSON).build();
38
+ }
2539
40
+ log.error("Unexpected error accesing to '{}' by user: {}", request.getPathInfo(), bsc.getUserPrincipal());
41
+ log.error("Request sent from {}, with User-Agent: {}", request.getRemoteHost(), request.getHeader("User-Agent"));
42
+ log.error("Request url: " + request.getRequestURL(), e);
2643 return Response.serverError().header(ERROR_MESSAGE_HEADER, "Unexpected error: " + e.toString()).type(MediaType.APPLICATION_JSON).build();
2744 }
2845 }
securis/src/main/java/net/curisit/securis/services/LicenseServices.java
....@@ -6,8 +6,11 @@
66
77 import javax.inject.Named;
88 import javax.servlet.http.HttpServletRequest;
9
+import javax.ws.rs.Consumes;
910 import javax.ws.rs.DefaultValue;
11
+import javax.ws.rs.FormParam;
1012 import javax.ws.rs.GET;
13
+import javax.ws.rs.POST;
1114 import javax.ws.rs.Path;
1215 import javax.ws.rs.PathParam;
1316 import javax.ws.rs.Produces;
....@@ -20,11 +23,13 @@
2023 import net.curisit.integrity.beans.ServiceResponse;
2124
2225 import org.apache.commons.io.IOUtils;
26
+import org.jboss.resteasy.annotations.providers.multipart.MultipartForm;
27
+import org.jboss.resteasy.annotations.providers.multipart.PartType;
2328 import org.slf4j.Logger;
2429 import org.slf4j.LoggerFactory;
2530
2631 // The Java class will be hosted at the URI path "/myresource"
27
-@Path("/license")
32
+@Path("/test")
2833 public class LicenseServices {
2934
3035 // private LicenseHelper licenseHelper = InjectorFactory.getInjector().getInstance(LicenseHelper.class);
....@@ -38,6 +43,7 @@
3843 private URI uri;
3944
4045 public LicenseServices() {
46
+
4147 }
4248
4349 /**
....@@ -70,55 +76,56 @@
7076 /**
7177 * @return the version of the three entities that can be synchronized (Users, DataSet and Settings)
7278 */
79
+ @POST
80
+ @Path("/upload1")
81
+ @Consumes(MediaType.MULTIPART_FORM_DATA)
82
+ @Produces(
83
+ { MediaType.APPLICATION_JSON })
84
+ public Response testFile1(@MultipartForm FileUploadForm mfdi) {
85
+ log.info("FORM: texto: {}, file: {}", mfdi.getTexto(), new String(mfdi.getFile()));
86
+ return Response.ok("OK").build();
87
+ }
88
+
7389 @GET
7490 @Path("/current/{license}")
7591 @Produces(
7692 { MediaType.APPLICATION_JSON })
77
- public ServiceResponse<ServerConfigVersions> status(@PathParam("license") String license, @DefaultValue("-1") @QueryParam("minorVersion") int minorVersion, @DefaultValue("-1") @QueryParam("majorVersion") int majorVersion) {
93
+ public ServiceResponse<ServerConfigVersions> testFile(@PathParam("license") String license, @DefaultValue("-1") @QueryParam("minorVersion") int minorVersion, @DefaultValue("-1") @QueryParam("majorVersion") int majorVersion) {
7894
7995 log.info("Called 'current' service with license: {}", license);
8096 ServiceResponse<ServerConfigVersions> response = new ServiceResponse<ServerConfigVersions>();
8197
8298 return response;
8399 }
84
- //
85
- // private <T> ServiceResponse<T> buildErrorResponse(ServiceResponse<T> response, String msgErrorCode) {
86
- // response.setSuccess(false);
87
- // response.setErrorMessage(localManager.getString(msgErrorCode));
88
- // response.setErrorMessageCode(msgErrorCode);
89
- // return response;
90
- // }
91
- //
92
- // private Date calculateCaducation() {
93
- // Integer licenseExpiration = systemParams.getParamAsInt(SystemParams.Keys.CONFIG_SERVER_LICENSE_EXPIRATION);
94
- // if (licenseExpiration == null)
95
- // licenseExpiration = DEFAULT_LICENSE_EXPIRATION;
96
- // return Utils.addDays(new Date(), licenseExpiration);
97
- // }
98
- //
99
- // private boolean validateLicense(String license) {
100
- // BasicApplication ba = basicApplicationDao.findByLicense(license);
101
- // return (ba != null);
102
- // }
103
- //
104
- // private boolean validateVersion(int minorVersion, int majorVersion) {
105
- // return (versionManager.getMajorVersion() == majorVersion);
106
- // }
107
- //
108
- // private BasicApplication findBasicApp(String license) {
109
- // BasicApplication ba = basicApplicationDao.findByLicense(license);
110
- // return ba;
111
- // }
112
- //
113
- // private License generateLicense() {
114
- // // TODO complete all field of the license
115
- // License license = new License();
116
- // license.setCustomerCode(systemParams.getParam(SystemParams.Keys.CONFIG_COMMON_CUSTOMER_CODE));
117
- // license.setCSCode(systemParams.getParam(SystemParams.Keys.CONFIG_COMMON_CS_CODE));
118
- // license.setCRCLogo("00000000");
119
- // license.setExpirationDate(calculateCaducation());
120
- // license.setInstallCode(codeGenerator.generateInstalationNumber());
121
- // return license;
122
- // }
123100
101
+ public static class FileUploadForm {
102
+
103
+ @FormParam("file1")
104
+ @PartType("application/octet-stream")
105
+ private byte[] file;
106
+
107
+ @FormParam("texto1")
108
+ @PartType("text/plain")
109
+ private String texto;
110
+
111
+ public FileUploadForm() {
112
+ }
113
+
114
+ public byte[] getFile() {
115
+ return file;
116
+ }
117
+
118
+ public void setFile(byte[] file) {
119
+ this.file = file;
120
+ }
121
+
122
+ public void setTexto(final String texto) {
123
+ this.texto = texto;
124
+ }
125
+
126
+ public String getTexto() {
127
+ return texto;
128
+ }
129
+
130
+ }
124131 }
securis/src/main/resources/static/js/angular-animate.min.js
similarity index 100%rename from securis/src/main/resources/static/js/angular-animate.min.jsrename to securis/src/main/resources/static/js/angular/angular-animate.min.js
securis/src/main/resources/static/js/angular-resource.min.js
similarity index 100%rename from securis/src/main/resources/static/js/angular-resource.min.jsrename to securis/src/main/resources/static/js/angular/angular-resource.min.js
securis/src/main/resources/static/js/angular-route.min.js
similarity index 100%rename from securis/src/main/resources/static/js/angular-route.min.jsrename to securis/src/main/resources/static/js/angular/angular-route.min.js
securis/src/main/resources/static/js/angular.min.js
similarity index 100%rename from securis/src/main/resources/static/js/angular.min.jsrename to securis/src/main/resources/static/js/angular/angular.min.js
securis/src/main/resources/static/js/angular.min.js.map
similarity index 100%rename from securis/src/main/resources/static/js/angular.min.js.maprename to securis/src/main/resources/static/js/angular/angular.min.js.map
securis/src/main/resources/static/js/chosen.js
similarity index 100%rename from securis/src/main/resources/static/js/chosen.jsrename to securis/src/main/resources/static/js/angular/chosen.js
securis/src/main/resources/static/js/toaster.js
similarity index 100%rename from securis/src/main/resources/static/js/toaster.jsrename to securis/src/main/resources/static/js/angular/toaster.js
securis/src/main/resources/static/js/bootstrap-dialog.js
similarity index 100%rename from securis/src/main/resources/static/js/bootstrap-dialog.jsrename to securis/src/main/resources/static/js/vendor/bootstrap-dialog.js
securis/src/main/resources/static/js/bootstrap.min.js
similarity index 100%rename from securis/src/main/resources/static/js/bootstrap.min.jsrename to securis/src/main/resources/static/js/vendor/bootstrap.min.js
securis/src/main/resources/static/js/glyphicons-halflings-regular.woff
similarity index 100%rename from securis/src/main/resources/static/js/glyphicons-halflings-regular.woffrename to securis/src/main/resources/static/js/vendor/glyphicons-halflings-regular.woffBinary files differ
securis/src/main/resources/static/js/jquery.min.js
similarity index 100%rename from securis/src/main/resources/static/js/jquery.min.jsrename to securis/src/main/resources/static/js/vendor/jquery.min.js
securis/src/main/resources/static/js/jquery.min.map
similarity index 100%rename from securis/src/main/resources/static/js/jquery.min.maprename to securis/src/main/resources/static/js/vendor/jquery.min.map
securis/src/main/resources/static/js/store.js
similarity index 100%rename from securis/src/main/resources/static/js/store.jsrename to securis/src/main/resources/static/js/vendor/store.js
securis/src/main/resources/static/js/store.min.js
similarity index 100%rename from securis/src/main/resources/static/js/store.min.jsrename to securis/src/main/resources/static/js/vendor/store.min.js
securis/src/main/resources/static/main.html
....@@ -35,29 +35,29 @@
3535 <!-- /container -->
3636 <script src="/js/vendor/modernizr-2.6.2.min.js"></script>
3737 <script
38
- src="/js/jquery.min.js"></script>
38
+ src="/js/vendor/jquery.min.js"></script>
3939 <script type="text/javascript"
40
- src="/js/bootstrap.min.js"></script>
40
+ src="/js/vendor/bootstrap.min.js"></script>
4141 <script type="text/javascript"
42
- src="/js/angular.min.js"></script>
42
+ src="/js/vendor/bootstrap-dialog.js"></script>
4343 <script type="text/javascript"
44
- src="/js/angular-route.min.js"></script>
44
+ src="/js/angular/angular.min.js"></script>
4545 <script type="text/javascript"
46
- src="/js/angular-resource.min.js"></script>
46
+ src="/js/angular/angular-route.min.js"></script>
4747 <script type="text/javascript"
48
- src="/js/angular-resource.min.js"></script>
48
+ src="/js/angular/angular-resource.min.js"></script>
4949 <script type="text/javascript"
50
- src="/js/bootstrap-dialog.js"></script>
50
+ src="/js/angular/angular-resource.min.js"></script>
5151 <script type="text/javascript"
52
- src="/js/toaster.js"></script>
52
+ src="/js/angular/toaster.js"></script>
5353 <script type="text/javascript"
54
- src="/js/toaster.js"></script>
54
+ src="/js/angular/toaster.js"></script>
5555 <script type="text/javascript"
5656 src="/js/vendor/chosen.jquery.js"></script>
5757 <script type="text/javascript"
58
- src="/js/chosen.js"></script>
58
+ src="/js/angular/chosen.js"></script>
5959 <script type="text/javascript"
60
- src="/js/store.min.js"></script>
60
+ src="/js/vendor/store.min.js"></script>
6161
6262 <script type="text/javascript" src="js/i18n.js"></script>
6363 <script type="text/javascript" src="js/main.js"></script>