You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2019/09/30 17:20:32 UTC
[isis] 01/04: ISIS-2086: refactors
'isis.authentication.shiro.autoLogoutIfAlreadyAuthenticated' to type-safe
config
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch ISIS-2086
in repository https://gitbox.apache.org/repos/asf/isis.git
commit c0914541b2e3d509bbec5508f4ed0fe0056f0df2
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Sep 30 18:12:34 2019 +0100
ISIS-2086: refactors 'isis.authentication.shiro.autoLogoutIfAlreadyAuthenticated' to type-safe config
---
.../org/apache/isis/config/IsisConfiguration.java | 23 +++++++++-------------
.../DomainServiceFacetAnnotationFactory.java | 4 ++--
...jectSpecIdFacetDerivedFromClassNameFactory.java | 2 +-
.../isis/jdo/persistence/PersistenceSession5.java | 2 +-
.../shiro/authentication/ShiroAuthenticator.java | 13 ++++++------
5 files changed, 20 insertions(+), 24 deletions(-)
diff --git a/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java b/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
index 0e2a720..e507d13 100644
--- a/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
@@ -61,14 +61,21 @@ import org.springframework.stereotype.Component;
@Data
public class IsisConfiguration {
-
+ private final Authentication authentication = new Authentication();
+ @Data
+ public static class Authentication {
+ private final Shiro shiro = new Shiro();
+ @Data
+ public static class Shiro {
+ private boolean autoLogoutIfAlreadyAuthenticated = false;
+ }
+ }
private final Objects objects = new Objects();
@Data
public static class Objects {
private EditingObjectsConfiguration editing = EditingObjectsConfiguration.TRUE;
}
- // // isis.persistor.datanucleus
private final Persistor persistor = new Persistor();
@Data
public static class Persistor {
@@ -298,18 +305,6 @@ public class IsisConfiguration {
private final Service service = new Service();
@Data
public static class Service {
- // isis.service.email.sender.username
- // isis.service.email.sender.address
- // isis.service.email.sender.password
- // isis.service.email.sender.hostname
- // isis.service.email.port
- // isis.service.email.socketTimeout
- // isis.service.email.socketConnectionTimeout
- // isis.service.email.tls.enabled
- // isis.service.email.throwExceptionOnFail
- // isis.service.email.override.to
- // isis.service.email.override.cc
- // isis.service.email.override.bcc
private final Email email = new Email();
@Data
public static class Email {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java
index 6a8307a..8e96a67 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java
@@ -82,7 +82,7 @@ implements MetaModelValidatorRefiner {
+ " convert into a mixin (@Mixin annotation) instead",
cls.getName(),
natureOfService,
- "isis.reflector.validator.mixinsOnly");
+ "'isis.reflector.validator.mixinsOnly'");
mixinOnlyValidator.addFailure(Identifier.classIdentifier(cls), msg);
break;
@@ -129,7 +129,7 @@ implements MetaModelValidatorRefiner {
thisSpec.getIdentifier(),
"%s: services can only have actions ('%s' config property), not properties or collections; annotate with @Programmatic if required. Found: %s",
thisSpec.getFullIdentifier(),
- "isis.reflector.validator.serviceActionsOnly",
+ "'isis.reflector.validator.serviceActionsOnly'",
associationNames);
}
}));
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/objectspecid/classname/ObjectSpecIdFacetDerivedFromClassNameFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/objectspecid/classname/ObjectSpecIdFacetDerivedFromClassNameFactory.java
index f444091..0756f84 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/objectspecid/classname/ObjectSpecIdFacetDerivedFromClassNameFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/objectspecid/classname/ObjectSpecIdFacetDerivedFromClassNameFactory.java
@@ -131,7 +131,7 @@ implements MetaModelValidatorRefiner, ObjectSpecIdFacetFactory {
+ "Use @Discriminator, @DomainObject(objectType=...) or "
+ "@PersistenceCapable(schema=...) to specify explicitly.",
objectSpec.getFullIdentifier(),
- "isis.reflector.validator.explicitObjectType");
+ "'isis.reflector.validator.explicitObjectType'");
}
}
diff --git a/core/plugins/jdo/datanucleus-5/src/main/java/org/apache/isis/jdo/persistence/PersistenceSession5.java b/core/plugins/jdo/datanucleus-5/src/main/java/org/apache/isis/jdo/persistence/PersistenceSession5.java
index 74fc8c1..58814e1 100644
--- a/core/plugins/jdo/datanucleus-5/src/main/java/org/apache/isis/jdo/persistence/PersistenceSession5.java
+++ b/core/plugins/jdo/datanucleus-5/src/main/java/org/apache/isis/jdo/persistence/PersistenceSession5.java
@@ -432,7 +432,7 @@ implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
*/
private FixturesInstalledState initialStateFromConfig() {
val installFixtures = configuration.getPersistor().getDatanucleus().isInstallFixtures();
- log.info("isFixturesInstalled: {} = {}", "isis.persistor.datanucleus.install-fixtures", installFixtures);
+ log.info("isFixturesInstalled: {} = {}", "'isis.persistor.datanucleus.install-fixtures'", installFixtures);
val objectStoreIsFixturesInstalled = !installFixtures;
val initialStateFromConfig = objectStoreIsFixturesInstalled
diff --git a/core/security/shiro/src/main/java/org/apache/isis/security/shiro/authentication/ShiroAuthenticator.java b/core/security/shiro/src/main/java/org/apache/isis/security/shiro/authentication/ShiroAuthenticator.java
index 420609a..b5e92b4 100644
--- a/core/security/shiro/src/main/java/org/apache/isis/security/shiro/authentication/ShiroAuthenticator.java
+++ b/core/security/shiro/src/main/java/org/apache/isis/security/shiro/authentication/ShiroAuthenticator.java
@@ -23,6 +23,7 @@ import java.util.Collections;
import java.util.Set;
import java.util.stream.Stream;
+import org.apache.isis.config.IsisConfiguration;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationInfo;
@@ -53,6 +54,8 @@ import static org.apache.isis.config.internal._Config.getConfiguration;
import lombok.extern.log4j.Log4j2;
+import javax.inject.Inject;
+
/**
* If Shiro is configured for both {@link AuthenticationManagerInstaller authentication} and
* {@link AuthorizationManagerInstaller authorization} (as recommended), then this class is
@@ -66,16 +69,14 @@ import lombok.extern.log4j.Log4j2;
@Log4j2
public class ShiroAuthenticator implements Authenticator {
- private static final String ISIS_AUTHENTICATION_SHIRO_AUTO_LOGOUT_KEY = "isis.authentication.shiro.autoLogoutIfAlreadyAuthenticated";
- private static final boolean ISIS_AUTHENTICATION_SHIRO_AUTO_LOGOUT_DEFAULT = false;
-
// -- constructor and fields
private final boolean autoLogout;
+ @Inject
+ IsisConfiguration configuration;
+
public ShiroAuthenticator() {
- autoLogout = getConfiguration().getBoolean(
- ISIS_AUTHENTICATION_SHIRO_AUTO_LOGOUT_KEY,
- ISIS_AUTHENTICATION_SHIRO_AUTO_LOGOUT_DEFAULT);
+ autoLogout = configuration.getAuthentication().getShiro().isAutoLogoutIfAlreadyAuthenticated();
}
// -- init, shutdown