Massive Argeo APIs refactoring
[lgpl/argeo-commons.git] / org.argeo.api / src / org / argeo / api / cms / CmsAuth.java
diff --git a/org.argeo.api/src/org/argeo/api/cms/CmsAuth.java b/org.argeo.api/src/org/argeo/api/cms/CmsAuth.java
new file mode 100644 (file)
index 0000000..decea35
--- /dev/null
@@ -0,0 +1,46 @@
+package org.argeo.api.cms;
+
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.login.LoginContext;
+import javax.security.auth.login.LoginException;
+
+/** The type of login context to use. */
+public enum CmsAuth {
+       NODE, USER, ANONYMOUS, DATA_ADMIN, SINGLE_USER, KEYRING;
+
+       public String getLoginContextName() {
+               return name();
+       }
+
+       @Override
+       public String toString() {
+               return getLoginContextName();
+       }
+
+       public LoginContext newLoginContext(CallbackHandler callbackHandler) throws LoginException {
+               return new LoginContext(getLoginContextName(), callbackHandler);
+       }
+
+       /*
+        * LOGIN CONTEXTS
+        */
+       /** @deprecated Use enum instead. */
+       @Deprecated
+       public static final String LOGIN_CONTEXT_NODE = NODE.getLoginContextName();
+       /** @deprecated Use enum instead. */
+       @Deprecated
+       public static final String LOGIN_CONTEXT_USER = USER.getLoginContextName();
+       /** @deprecated Use enum instead. */
+       @Deprecated
+       public static final String LOGIN_CONTEXT_ANONYMOUS = ANONYMOUS.getLoginContextName();
+       /** @deprecated Use enum instead. */
+       @Deprecated
+       public static final String LOGIN_CONTEXT_DATA_ADMIN = DATA_ADMIN.getLoginContextName();
+       /** @deprecated Use enum instead. */
+       @Deprecated
+       public static final String LOGIN_CONTEXT_SINGLE_USER = SINGLE_USER.getLoginContextName();
+       /** @deprecated Use enum instead. */
+       @Deprecated
+       public static final String LOGIN_CONTEXT_KEYRING = KEYRING.getLoginContextName();
+
+}