You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by ma...@apache.org on 2015/10/14 11:52:08 UTC

syncope git commit: Fixed SYNCOPE-708

Repository: syncope
Updated Branches:
  refs/heads/1_2_X 876fde9aa -> 5063ce6e1


Fixed SYNCOPE-708


Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/5063ce6e
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/5063ce6e
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/5063ce6e

Branch: refs/heads/1_2_X
Commit: 5063ce6e1b6db266470e42e17cae244b789e1dc4
Parents: 876fde9
Author: massi <ma...@tirasa.net>
Authored: Wed Oct 14 11:51:54 2015 +0200
Committer: massi <ma...@tirasa.net>
Committed: Wed Oct 14 11:51:54 2015 +0200

----------------------------------------------------------------------
 .../core/rest/controller/LoggerController.java  | 32 +++++++++++++++++---
 .../core/services/LoggerServiceImpl.java        | 15 +++++----
 .../syncope/core/rest/LoggerTestITCase.java     | 16 ++++++++++
 3 files changed, 53 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/5063ce6e/core/src/main/java/org/apache/syncope/core/rest/controller/LoggerController.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/controller/LoggerController.java b/core/src/main/java/org/apache/syncope/core/rest/controller/LoggerController.java
index f38d0b2..d077cd1 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/controller/LoggerController.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/controller/LoggerController.java
@@ -116,6 +116,31 @@ public class LoggerController extends AbstractTransactionalController<LoggerTO>
         throw sce;
     }
 
+    @PreAuthorize("hasRole('LOG_LIST')")
+    @Transactional(readOnly = true)
+    public LoggerTO readLog(final String name) {
+        for (final LoggerTO logger : listLogs()) {
+            if (logger.getName().equals(name)) {
+                return logger;
+            }
+        }
+        throw new NotFoundException("Logger " + name);
+    }
+
+    @PreAuthorize("hasRole('AUDIT_LIST')")
+    @Transactional(readOnly = true)
+    public LoggerTO readAudit(final String name) {
+        for (final AuditLoggerName logger : listAudits()) {
+            if (logger.toLoggerName().equals(name)) {
+                final LoggerTO loggerTO = new LoggerTO();
+                loggerTO.setName(logger.toLoggerName());
+                loggerTO.setLevel(LoggerLevel.DEBUG);
+                return loggerTO;
+            }
+        }
+        throw new NotFoundException("Logger " + name);
+    }
+
     private LoggerTO setLevel(final String name, final Level level, final LoggerType expectedType) {
         SyncopeLogger syncopeLogger = loggerDAO.find(name);
         if (syncopeLogger == null) {
@@ -213,11 +238,10 @@ public class LoggerController extends AbstractTransactionalController<LoggerTO>
 
         try {
             final ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
-            final MetadataReaderFactory metadataReaderFactory =
-                    new CachingMetadataReaderFactory(resourcePatternResolver);
+            final MetadataReaderFactory metadataReaderFactory
+                    = new CachingMetadataReaderFactory(resourcePatternResolver);
 
-            final String packageSearchPath =
-                    ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX
+            final String packageSearchPath = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX
                     + ClassUtils.convertClassNameToResourcePath(
                             SystemPropertyUtils.resolvePlaceholders(this.getClass().getPackage().getName()))
                     + "/" + "**/*.class";

http://git-wip-us.apache.org/repos/asf/syncope/blob/5063ce6e/core/src/main/java/org/apache/syncope/core/services/LoggerServiceImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/services/LoggerServiceImpl.java b/core/src/main/java/org/apache/syncope/core/services/LoggerServiceImpl.java
index 1308e1f..2b106d1 100644
--- a/core/src/main/java/org/apache/syncope/core/services/LoggerServiceImpl.java
+++ b/core/src/main/java/org/apache/syncope/core/services/LoggerServiceImpl.java
@@ -80,13 +80,16 @@ public class LoggerServiceImpl extends AbstractServiceImpl implements LoggerServ
 
     @Override
     public LoggerTO read(final LoggerType type, final String name) {
-        List<LoggerTO> logger = list(type);
-        for (LoggerTO l : logger) {
-            if (l.getName().equals(name)) {
-                return l;
-            }
+        switch (type) {
+            case LOG:
+                return controller.readLog(name);
+
+            case AUDIT:
+                return controller.readAudit(name);
+
+            default:
+                throw new BadRequestException();
         }
-        throw new NotFoundException();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/syncope/blob/5063ce6e/core/src/test/java/org/apache/syncope/core/rest/LoggerTestITCase.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/syncope/core/rest/LoggerTestITCase.java b/core/src/test/java/org/apache/syncope/core/rest/LoggerTestITCase.java
index 58927f0..8092098 100644
--- a/core/src/test/java/org/apache/syncope/core/rest/LoggerTestITCase.java
+++ b/core/src/test/java/org/apache/syncope/core/rest/LoggerTestITCase.java
@@ -22,9 +22,13 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
 
 import java.text.ParseException;
 import java.util.List;
+import javax.ws.rs.core.Response;
+import javax.xml.ws.WebServiceException;
+import org.apache.syncope.common.SyncopeClientException;
 import org.apache.syncope.common.to.EventCategoryTO;
 import org.apache.syncope.common.to.LoggerTO;
 import org.apache.syncope.common.types.AttributableType;
@@ -212,4 +216,16 @@ public class LoggerTestITCase extends AbstractTest {
         }
         assertTrue(found);
     }
+    
+    @Test
+    public void issueSYNCOPE708() {
+        try {
+            loggerService.read(LoggerType.LOG, "notExists");
+            fail("Read a not exists logger, it should go in exception");
+        } catch (final WebServiceException ex) {
+            fail("Exception is WebServiceException but it should be SyncopeClientException");
+        } catch (final SyncopeClientException ex) {
+            assertEquals(Response.Status.NOT_FOUND, ex.getType().getResponseStatus());
+        }
+    }
 }