From 91450002c14488ee098abae3282e88d6619c5663 Mon Sep 17 00:00:00 2001 From: Timm Fitschen <timm.fitschen@ds.mpg.de> Date: Mon, 19 Nov 2018 16:38:57 +0100 Subject: [PATCH] ADD AnonymousRealm --- .../AnonymousAuthenticationToken.java | 33 +++++++++++++++++++ .../server/accessControl/AnonymousRealm.java | 23 +++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 src/main/java/caosdb/server/accessControl/AnonymousAuthenticationToken.java create mode 100644 src/main/java/caosdb/server/accessControl/AnonymousRealm.java diff --git a/src/main/java/caosdb/server/accessControl/AnonymousAuthenticationToken.java b/src/main/java/caosdb/server/accessControl/AnonymousAuthenticationToken.java new file mode 100644 index 00000000..6453df24 --- /dev/null +++ b/src/main/java/caosdb/server/accessControl/AnonymousAuthenticationToken.java @@ -0,0 +1,33 @@ +package caosdb.server.accessControl; + +import org.apache.shiro.authc.AuthenticationToken; + +public class AnonymousAuthenticationToken implements AuthenticationToken { + + private static final long serialVersionUID = 1424325396819592888L; + private static final AnonymousAuthenticationToken INSTANCE = new AnonymousAuthenticationToken(); + public static final Object PRINCIPAL = new Object(); + + private AnonymousAuthenticationToken() { + } + + public static AnonymousAuthenticationToken getInstance(){ + return INSTANCE; + } + + @Override + public Object getPrincipal() { + return PRINCIPAL; + } + + @Override + public Object getCredentials() { + return null; + } + + @Override + public boolean equals(Object obj) { + return obj == this; + } + +} diff --git a/src/main/java/caosdb/server/accessControl/AnonymousRealm.java b/src/main/java/caosdb/server/accessControl/AnonymousRealm.java new file mode 100644 index 00000000..1e42b76f --- /dev/null +++ b/src/main/java/caosdb/server/accessControl/AnonymousRealm.java @@ -0,0 +1,23 @@ +package caosdb.server.accessControl; + +import org.apache.shiro.authc.AuthenticationInfo; +import org.apache.shiro.authc.AuthenticationToken; +import org.apache.shiro.authc.SimpleAuthenticationInfo; +import org.apache.shiro.authc.credential.AllowAllCredentialsMatcher; +import org.apache.shiro.realm.AuthenticatingRealm; + +public class AnonymousRealm extends AuthenticatingRealm { + + @Override + protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) { + return new SimpleAuthenticationInfo(token.getPrincipal(), null, getName()); + } + + public AnonymousRealm() { + setAuthenticationTokenClass(AnonymousAuthenticationToken.class); + setCredentialsMatcher(new AllowAllCredentialsMatcher()); + setCachingEnabled(false); + setAuthenticationCachingEnabled(false); + } + +} -- GitLab