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());
+ }
+ }
}