Added: geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/CredentialValidationResult.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/CredentialValidationResult.java?rev=1851799&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/CredentialValidationResult.java
(added)
+++ geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/CredentialValidationResult.java
Tue Jan 22 10:07:19 2019
@@ -0,0 +1,119 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.security.enterprise.identitystore;
+
+
+import javax.security.enterprise.CallerPrincipal;
+import java.util.HashSet;
+import java.util.Set;
+
+import static java.util.Collections.emptySet;
+import static java.util.Collections.unmodifiableSet;
+import static javax.security.enterprise.identitystore.CredentialValidationResult.Status.INVALID;
+import static javax.security.enterprise.identitystore.CredentialValidationResult.Status.NOT_VALIDATED;
+import static javax.security.enterprise.identitystore.CredentialValidationResult.Status.VALID;
+
+public class CredentialValidationResult {
+ public static final CredentialValidationResult INVALID_RESULT = new CredentialValidationResult(INVALID);
+ public static final CredentialValidationResult NOT_VALIDATED_RESULT = new CredentialValidationResult(NOT_VALIDATED);
+
+ private final Status status;
+ private final String storeId;
+ private final String callerDn;
+ private final String callerUniqueId;
+ private final CallerPrincipal callerPrincipal;
+ private final Set<String> groups;
+
+ public enum Status {
+ NOT_VALIDATED,
+ INVALID,
+ VALID
+ }
+
+ private CredentialValidationResult(Status status) {
+ this(status, null, null, null, null, null);
+ }
+
+ public CredentialValidationResult(String callerName) {
+ this(new CallerPrincipal(callerName), null);
+ }
+
+ public CredentialValidationResult(CallerPrincipal callerPrincipal) {
+ this(callerPrincipal, null);
+ }
+
+ public CredentialValidationResult(String callerName, Set<String> groups) {
+ this(new CallerPrincipal(callerName), groups);
+ }
+
+ public CredentialValidationResult(CallerPrincipal callerPrincipal, Set<String>
groups) {
+ this(null, callerPrincipal, null, null, groups);
+ }
+
+ public CredentialValidationResult(String storeId, String callerName, String callerDn,
String callerUniqueId,
+ Set<String> groups) {
+ this(storeId, new CallerPrincipal(callerName), callerDn, callerUniqueId, groups);
+ }
+
+ public CredentialValidationResult(String storeId, CallerPrincipal callerPrincipal, String
callerDn,
+ String callerUniqueId, Set<String> groups) {
+ this(VALID, storeId, callerPrincipal, callerDn, callerUniqueId, groups);
+ }
+
+ private CredentialValidationResult(Status status, String storeId, CallerPrincipal callerPrincipal,
String callerDn,
+ String callerUniqueId, Set<String> groups) {
+
+ if (status != VALID && (storeId != null || callerPrincipal != null ||
+ callerDn != null || callerUniqueId != null || groups != null))
{
+ throw new IllegalArgumentException("Bad status");
+ }
+ if (status == VALID && (callerPrincipal == null || callerPrincipal.getName().trim().isEmpty()))
{
+ throw new IllegalArgumentException("Null or empty CallerPrincipal");
+ }
+
+ this.status = status;
+ this.storeId = storeId;
+ this.callerPrincipal = callerPrincipal;
+ this.callerDn = callerDn;
+ this.callerUniqueId = callerUniqueId;
+ this.groups = groups != null ? unmodifiableSet(new HashSet<>(groups)) : emptySet();
+ }
+
+ public Status getStatus() {
+ return status;
+ }
+
+ public String getIdentityStoreId() {
+ return storeId;
+ }
+
+ public CallerPrincipal getCallerPrincipal() {
+ return callerPrincipal;
+ }
+
+ public String getCallerUniqueId() {
+ return callerUniqueId;
+ }
+
+ public String getCallerDn() {
+ return callerDn;
+ }
+
+ public Set<String> getCallerGroups() {
+ return groups;
+ }
+}
Added: geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/DatabaseIdentityStoreDefinition.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/DatabaseIdentityStoreDefinition.java?rev=1851799&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/DatabaseIdentityStoreDefinition.java
(added)
+++ geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/DatabaseIdentityStoreDefinition.java
Tue Jan 22 10:07:19 2019
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.security.enterprise.identitystore;
+
+import javax.security.enterprise.identitystore.IdentityStore.ValidationType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import static javax.security.enterprise.identitystore.IdentityStore.ValidationType.PROVIDE_GROUPS;
+import static javax.security.enterprise.identitystore.IdentityStore.ValidationType.VALIDATE;
+
+@Retention(RUNTIME)
+@Target(TYPE)
+public @interface DatabaseIdentityStoreDefinition {
+ String dataSourceLookup() default "java:comp/DefaultDataSource";
+
+ String callerQuery() default "";
+
+ String groupsQuery() default "";
+
+ Class<? extends PasswordHash> hashAlgorithm() default Pbkdf2PasswordHash.class;
+
+ String[] hashAlgorithmParameters() default {};
+
+ int priority() default 70;
+
+ String priorityExpression() default "";
+
+ ValidationType[] useFor() default {
+ VALIDATE,
+ PROVIDE_GROUPS
+ };
+
+ String useForExpression() default "";
+}
Added: geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/IdentityStore.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/IdentityStore.java?rev=1851799&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/IdentityStore.java
(added)
+++ geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/IdentityStore.java
Tue Jan 22 10:07:19 2019
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.security.enterprise.identitystore;
+
+import javax.security.enterprise.credential.Credential;
+import java.lang.invoke.MethodHandles;
+import java.util.EnumSet;
+import java.util.Set;
+
+import static java.lang.invoke.MethodType.methodType;
+import static java.util.Collections.emptySet;
+import static javax.security.enterprise.identitystore.CredentialValidationResult.NOT_VALIDATED_RESULT;
+import static javax.security.enterprise.identitystore.IdentityStore.ValidationType.PROVIDE_GROUPS;
+import static javax.security.enterprise.identitystore.IdentityStore.ValidationType.VALIDATE;
+
+public interface IdentityStore {
+ Set<ValidationType> DEFAULT_VALIDATION_TYPES = EnumSet.of(VALIDATE, PROVIDE_GROUPS);
+
+ default CredentialValidationResult validate(Credential credential) {
+ try {
+ return CredentialValidationResult.class.cast(
+ MethodHandles.lookup()
+ .bind(this, "validate", methodType(CredentialValidationResult.class,
credential.getClass()))
+ .invoke(credential));
+ } catch (NoSuchMethodException e) {
+ return NOT_VALIDATED_RESULT;
+ } catch (Throwable e) {
+ throw new IllegalStateException(e);
+ }
+ }
+
+ default Set<String> getCallerGroups(CredentialValidationResult validationResult)
{
+ return emptySet();
+ }
+
+ default int priority() {
+ return 100;
+ }
+
+ default Set<ValidationType> validationTypes() {
+ return DEFAULT_VALIDATION_TYPES;
+ }
+
+ enum ValidationType {
+ VALIDATE, PROVIDE_GROUPS
+ }
+}
Added: geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/IdentityStoreHandler.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/IdentityStoreHandler.java?rev=1851799&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/IdentityStoreHandler.java
(added)
+++ geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/IdentityStoreHandler.java
Tue Jan 22 10:07:19 2019
@@ -0,0 +1,23 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.security.enterprise.identitystore;
+
+import javax.security.enterprise.credential.Credential;
+
+public interface IdentityStoreHandler {
+ CredentialValidationResult validate(Credential credential);
+}
Added: geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/IdentityStorePermission.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/IdentityStorePermission.java?rev=1851799&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/IdentityStorePermission.java
(added)
+++ geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/IdentityStorePermission.java
Tue Jan 22 10:07:19 2019
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.security.enterprise.identitystore;
+
+import java.security.BasicPermission;
+
+public class IdentityStorePermission extends BasicPermission {
+ private static final long serialVersionUID = 1254057022829640365L;
+
+ public IdentityStorePermission(String name) {
+ super(name);
+ }
+
+ public IdentityStorePermission(String name, String action) {
+ super(name, action);
+ }
+}
Added: geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/IdentityStoreWrapper.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/IdentityStoreWrapper.java?rev=1851799&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/IdentityStoreWrapper.java
(added)
+++ geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/IdentityStoreWrapper.java
Tue Jan 22 10:07:19 2019
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.security.enterprise.identitystore;
+
+import javax.security.enterprise.credential.Credential;
+import java.util.Set;
+
+public class IdentityStoreWrapper implements IdentityStore {
+ private final IdentityStore identityStore;
+
+ public IdentityStoreWrapper(IdentityStore identityStore) {
+ this.identityStore = identityStore;
+ }
+
+ public IdentityStore getWrapped() {
+ return identityStore;
+ }
+
+ @Override
+ public CredentialValidationResult validate(Credential credential) {
+ return getWrapped().validate(credential);
+ }
+
+ @Override
+ public Set<String> getCallerGroups(CredentialValidationResult validationResult)
{
+ return getWrapped().getCallerGroups(validationResult);
+ }
+
+ @Override
+ public int priority() {
+ return getWrapped().priority();
+ }
+
+ @Override
+ public Set<ValidationType> validationTypes() {
+ return getWrapped().validationTypes();
+ }
+}
Added: geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/LdapIdentityStoreDefinition.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/LdapIdentityStoreDefinition.java?rev=1851799&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/LdapIdentityStoreDefinition.java
(added)
+++ geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/LdapIdentityStoreDefinition.java
Tue Jan 22 10:07:19 2019
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.security.enterprise.identitystore;
+
+import javax.security.enterprise.identitystore.IdentityStore.ValidationType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import static javax.security.enterprise.identitystore.IdentityStore.ValidationType.PROVIDE_GROUPS;
+import static javax.security.enterprise.identitystore.IdentityStore.ValidationType.VALIDATE;
+
+@Retention(RUNTIME)
+@Target(TYPE)
+public @interface LdapIdentityStoreDefinition {
+ enum LdapSearchScope {
+ ONE_LEVEL, SUBTREE
+ }
+
+ String url() default "";
+
+ String bindDn() default "";
+
+ String bindDnPassword() default "";
+
+ String callerBaseDn() default "";
+
+ String callerNameAttribute() default "uid";
+
+ String callerSearchBase() default "";
+
+ String callerSearchFilter() default "";
+
+ LdapSearchScope callerSearchScope() default LdapSearchScope.SUBTREE;
+
+ String callerSearchScopeExpression() default "";
+
+ String groupSearchBase() default "";
+
+ String groupSearchFilter() default "";
+
+ LdapSearchScope groupSearchScope() default LdapSearchScope.SUBTREE;
+
+ String groupSearchScopeExpression() default "";
+
+ String groupNameAttribute() default "cn";
+
+ String groupMemberAttribute() default "member";
+
+ String groupMemberOfAttribute() default "memberOf";
+
+ int readTimeout() default 0;
+
+ String readTimeoutExpression() default "";
+
+ int maxResults() default 1000;
+
+ String maxResultsExpression() default "";
+
+ int priority() default 80;
+
+ String priorityExpression() default "";
+
+ ValidationType[] useFor() default {
+ VALIDATE,
+ PROVIDE_GROUPS
+ };
+
+ String useForExpression() default "";
+}
Added: geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/PasswordHash.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/PasswordHash.java?rev=1851799&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/PasswordHash.java
(added)
+++ geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/PasswordHash.java
Tue Jan 22 10:07:19 2019
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.security.enterprise.identitystore;
+
+import java.util.Map;
+
+public interface PasswordHash {
+ default void initialize(Map<String, String> parameters) {}
+
+ String generate(char[] password);
+
+ boolean verify(char[] password, String hashedPassword);
+}
Added: geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/Pbkdf2PasswordHash.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/Pbkdf2PasswordHash.java?rev=1851799&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/Pbkdf2PasswordHash.java
(added)
+++ geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/Pbkdf2PasswordHash.java
Tue Jan 22 10:07:19 2019
@@ -0,0 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.security.enterprise.identitystore;
+
+public interface Pbkdf2PasswordHash extends PasswordHash {}
Added: geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/RememberMeIdentityStore.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/RememberMeIdentityStore.java?rev=1851799&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/RememberMeIdentityStore.java
(added)
+++ geronimo/specs/trunk/geronimo-security_1.0_spec/src/main/java/javax/security/enterprise/identitystore/RememberMeIdentityStore.java
Tue Jan 22 10:07:19 2019
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.security.enterprise.identitystore;
+
+import javax.security.enterprise.CallerPrincipal;
+import javax.security.enterprise.credential.RememberMeCredential;
+import java.util.Set;
+
+public interface RememberMeIdentityStore {
+ CredentialValidationResult validate(RememberMeCredential credential);
+
+ String generateLoginToken(CallerPrincipal callerPrincipal, Set<String> groups);
+
+ void removeLoginToken(String token);
+}
Modified: geronimo/specs/trunk/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/pom.xml?rev=1851799&r1=1851798&r2=1851799&view=diff
==============================================================================
--- geronimo/specs/trunk/pom.xml (original)
+++ geronimo/specs/trunk/pom.xml Tue Jan 22 10:07:19 2019
@@ -172,7 +172,7 @@
<!-- Deployment 1.2 NONE -->
<!-- JACC 1.5 NONE -->
<!-- JASPIC 1.1 NONE -->
- <!-- Java EE Security API 1.0 NONE -->
+ <module>geronimo-security_1.0_spec</module>
<!-- DEBUG 1.0 NONE -->
<!-- JSTL 1.2 NONE -->
<!-- WS Metadata 2.1 NONE -->
|