<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE javadoc SYSTEM "https://raw.githubusercontent.com/eclipse-ee4j/jakartaee-tck/master/internal/docs/dtd/javadoc_assertions.dtd">
<!--

    Copyright (c) 2018, 2020 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<javadoc>
<next-available-id>181</next-available-id>
<previous-id>1</previous-id>
<technology>Security</technology>
<id>Security API 1.0</id>
<name>Java EE Security API</name>
<version>1.0</version>
<assertions>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>161</id>
<description>
                            Constructs a new AuthenticationException exception with null as its detail message.
                        </description>
<package>jakarta.security.enterprise</package>
<class-interface>AuthenticationException</class-interface>
<method name="AuthenticationException" return-type="AuthenticationException"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>162</id>
<description>
                            Constructs a new AuthenticationException exception with the specified detail message.
                        </description>
<package>jakarta.security.enterprise</package>
<class-interface>AuthenticationException</class-interface>
<method name="AuthenticationException" return-type="AuthenticationException">
<parameters>
<parameter>java.lang.String</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>163</id>
<description>
                            Constructs a new AuthenticationException exception with the specified detail message and cause.
                        </description>
<package>jakarta.security.enterprise</package>
<class-interface>AuthenticationException</class-interface>
<method name="AuthenticationException" return-type="AuthenticationException">
<parameters>
<parameter>java.lang.String</parameter>
<parameter>java.lang.Throwable</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>164</id>
<description>
                            Constructs a new AuthenticationException exception with the specified cause.
                        </description>
<package>jakarta.security.enterprise</package>
<class-interface>AuthenticationException</class-interface>
<method name="AuthenticationException" return-type="AuthenticationException">
<parameters>
<parameter>java.lang.Throwable</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>1</id>
<description/>
<package>jakarta.security.enterprise</package>
<class-interface>AuthenticationStatus</class-interface>
<method name="valueOf" return-type="jakarta.security.enterprise.AuthenticationStatus">
<parameters>
<parameter>java.lang.String</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>2</id>
<description/>
<package>jakarta.security.enterprise</package>
<class-interface>AuthenticationStatus</class-interface>
<method name="values" return-type="jakarta.security.enterprise.AuthenticationStatus[]"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>3</id>
<description/>
<package>jakarta.security.enterprise</package>
<class-interface>CallerPrincipal</class-interface>
<method name="CallerPrincipal" return-type="CallerPrincipal">
<parameters>
<parameter>java.lang.String</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>4</id>
<description>
                            The name of the caller
                        </description>
<package>jakarta.security.enterprise</package>
<class-interface>CallerPrincipal</class-interface>
<method name="getName" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>5</id>
<description>
                            Signal to the container (programmatically trigger) that it should start or continue a web/HTTP based authentication dialog with   the caller.
                            
                            
                            
                            
                                   Programmatically triggering means that the container responds as if the caller had attempted to access a constrained resource  and acts by invoking a configured authentication mechanism (such as the HttpAuthenticationMechanism).      Whether the authentication dialog is to be started or continued depends on the (logical) state of the authentication dialog. If  such dialog is currently in progress, a call to this method will continue it. If such dialog is not in progress a new one will be  started. A new dialog can be forced to be started regardless of one being in progress or not by providing a value of   true for the AuthenticationParameters#newAuthentication parameter with this call.      This method requires an HttpServletRequest and HttpServletResponse argument to be passed in, and  can therefore only be used in a valid Servlet context.
                        </description>
<package>jakarta.security.enterprise</package>
<class-interface>SecurityContext</class-interface>
<method name="authenticate" return-type="jakarta.security.enterprise.AuthenticationStatus">
<parameters>
<parameter>HttpServletRequest</parameter>
<parameter>HttpServletResponse</parameter>
<parameter>jakarta.security.enterprise.authentication.mechanism.http.AuthenticationParameters</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>6</id>
<description>
                            Retrieve the platform-specific java.security.Principal that represents  the name of authenticated caller, or null if the current caller is not authenticated.
                        </description>
<package>jakarta.security.enterprise</package>
<class-interface>SecurityContext</class-interface>
<method name="getCallerPrincipal" return-type="java.security.Principal"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>7</id>
<description>
                            Retrieve all Principals of the given type from the authenticated caller's Subject,  or an empty set if the current caller is not authenticated, or if the specified type  isn't found in the Subject.
                                This can be used to retrieve application-specific  Principals when the platform's representation of the caller uses a different principal type.    The returned Set is not backed by the Subject's internal Principal Set.  A new Set is created and returned for each method invocation.  Modifications to the returned Set will not affect the internal Principal Set.
                        </description>
<package>jakarta.security.enterprise</package>
<class-interface>SecurityContext</class-interface>
<method name="getPrincipalsByType" return-type="java.util.Set">
<parameters>
<parameter>java.lang.Class</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>8</id>
<description>
                            Checks whether the caller has access to the provided "web resource" using the given methods,   as specified by section 13.8 of the Servlet specification.
                                  A caller has access if the web resource is either not protected (constrained), or when it is protected by a role  and the caller is in that role.
                        </description>
<package>jakarta.security.enterprise</package>
<class-interface>SecurityContext</class-interface>
<method name="hasAccessToWebResource" return-type="boolean">
<parameters>
<parameter>java.lang.String</parameter>
<parameter>java.lang.String[]</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>9</id>
<description>
                            Checks whether the authenticated caller is included in the specified logical application "role".
                            
                            
                               If the caller is not authenticated, this always returns false.      This method can not be used to test for roles that are mapped to specific named Servlets or   named EJB beans. For a Servlet an example of this would be the role-name nested in a   security-role-ref element nested in a servlet element in web.xml.      Should code in either such Servlet or EJB bean wish to take such mapped (aka referenced, linked) roles into  account, the facilities for that specific container should be used instead. For instance for Servlet that would  be HttpServletRequest#isUserInRole(String) and for EJB beans that would be   SessionContext#isCallerInRole(String).
                        </description>
<package>jakarta.security.enterprise</package>
<class-interface>SecurityContext</class-interface>
<method name="isCallerInRole" return-type="boolean">
<parameters>
<parameter>java.lang.String</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>10</id>
<description/>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>AuthenticationParameters</class-interface>
<method name="AuthenticationParameters" return-type="AuthenticationParameters"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>11</id>
<description>
                            Sets the credential to be used by the authentication mechanism responding  to the authenticate call in which these AuthenticationParameters are passed.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>AuthenticationParameters</class-interface>
<method name="credential" return-type="jakarta.security.enterprise.authentication.mechanism.http.AuthenticationParameters">
<parameters>
<parameter>jakarta.security.enterprise.credential.Credential</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>12</id>
<description>
                            The credential set as parameter in this instance.
                            
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>AuthenticationParameters</class-interface>
<method name="getCredential" return-type="jakarta.security.enterprise.credential.Credential"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>13</id>
<description>
                            Whether a new authentication dialog is required.
                            
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>AuthenticationParameters</class-interface>
<method name="isNewAuthentication" return-type="boolean"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>14</id>
<description>
                            Whether "remember me" should be used.
                            
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>AuthenticationParameters</class-interface>
<method name="isRememberMe" return-type="boolean"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>15</id>
<description>
                            Signal to the authentication mechanism responding to the authenticate call in which these   AuthenticationParameters are passed, that an explicit new authentication dialog is required, as opposed to  continuing a potentially existing one.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>AuthenticationParameters</class-interface>
<method name="newAuthentication" return-type="jakarta.security.enterprise.authentication.mechanism.http.AuthenticationParameters">
<parameters>
<parameter>boolean</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>16</id>
<description>
                            Signals that for this call to the authentication mechanism "remember me" should be applied, IFF the  "remember me" feature is configured for the authentication mechanism responding to the authenticate call.
                                  If "remember me" is not configured, this parameter is silently ignored.
                            
                            
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>AuthenticationParameters</class-interface>
<method name="rememberMe" return-type="jakarta.security.enterprise.authentication.mechanism.http.AuthenticationParameters">
<parameters>
<parameter>boolean</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>17</id>
<description>
                            Sets the credential as parameter in this instance.
                            
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>AuthenticationParameters</class-interface>
<method name="setCredential" return-type="void">
<parameters>
<parameter>jakarta.security.enterprise.credential.Credential</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>18</id>
<description>
                            Sets whether a new authentication dialog is required.
                            
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>AuthenticationParameters</class-interface>
<method name="setNewAuthentication" return-type="void">
<parameters>
<parameter>boolean</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>19</id>
<description>
                            Sets whether "remember me" should be used.
                            
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>AuthenticationParameters</class-interface>
<method name="setRememberMe" return-type="void">
<parameters>
<parameter>boolean</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>20</id>
<description>
                            Creates a new instance of AuthenticationParameters, useful for a fluent/builder  style creation of parameters.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>AuthenticationParameters</class-interface>
<method name="withParams" return-type="jakarta.security.enterprise.authentication.mechanism.http.AuthenticationParameters"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>78</id>
<description>
                            Name of realm that will be sent via the WWW-Authenticate header.
                                Note that this realm name does not couple a named identity store  configuration to the authentication mechanism.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>BasicAuthenticationMechanismDefinition</class-interface>
<method name="realmName" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>79</id>
<description/>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>CustomFormAuthenticationMechanismDefinition</class-interface>
<method name="loginToContinue" return-type="jakarta.security.enterprise.authentication.mechanism.http.LoginToContinue"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>80</id>
<description/>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>FormAuthenticationMechanismDefinition</class-interface>
<method name="loginToContinue" return-type="jakarta.security.enterprise.authentication.mechanism.http.LoginToContinue"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>21</id>
<description>
                            Remove mechanism specific principals and credentials from the subject and any other state the mechanism  might have used.
                            
                                  This method is called in response to HttpServletRequest#logout() and gives the authentication mechanism  the option to remove any state associated with an earlier established authenticated identity. For example, an  authentication mechanism that stores state within a cookie can send remove that cookie here.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpAuthenticationMechanism</class-interface>
<method name="cleanSubject" return-type="void">
<parameters>
<parameter>HttpServletRequest</parameter>
<parameter>HttpServletResponse</parameter>
<parameter>jakarta.security.enterprise.authentication.mechanism.http.HttpMessageContext</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>22</id>
<description>
                            Secure the response, optionally.
                            
                            
                            
                            
                                  This method is called to allow for any post processing to be done on the request, and is always invoked   after any Filter or HttpServlet.       Note that this method is only called when a (Servlet) resource has indeed been invoked, i.e. if a previous call  to validateRequest that was invoked before any Filter or HttpServlet returned SUCCESS.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpAuthenticationMechanism</class-interface>
<method name="secureResponse" return-type="jakarta.security.enterprise.AuthenticationStatus">
<parameters>
<parameter>HttpServletRequest</parameter>
<parameter>HttpServletResponse</parameter>
<parameter>jakarta.security.enterprise.authentication.mechanism.http.HttpMessageContext</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>23</id>
<description>when the processing failed</description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpAuthenticationMechanism</class-interface>
<method name="secureResponse" return-type="jakarta.security.enterprise.AuthenticationStatus">
<parameters>
<parameter>HttpServletRequest</parameter>
<parameter>HttpServletResponse</parameter>
<parameter>jakarta.security.enterprise.authentication.mechanism.http.HttpMessageContext</parameter>
</parameters>
<throw>jakarta.security.enterprise.AuthenticationException</throw>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>24</id>
<description>
                            Authenticate an HTTP request.
                            
                            
                            
                            
                            
                                  This method is called in response to an HTTP client request for a resource, and is always invoked   before any Filter or HttpServlet. Additionally this method is called  in response to HttpServletRequest#authenticate(HttpServletResponse)      Note that by default this method is always called for every request, independent of whether  the request is to a protected or non-protected resource, or whether a caller was successfully authenticated  before within the same HTTP session or not.      A CDI/Interceptor spec interceptor can be used to prevent calls to this method if needed.   See AutoApplySession and RememberMe for two examples.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpAuthenticationMechanism</class-interface>
<method name="validateRequest" return-type="jakarta.security.enterprise.AuthenticationStatus">
<parameters>
<parameter>HttpServletRequest</parameter>
<parameter>HttpServletResponse</parameter>
<parameter>jakarta.security.enterprise.authentication.mechanism.http.HttpMessageContext</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>25</id>
<description>when the processing failed</description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpAuthenticationMechanism</class-interface>
<method name="validateRequest" return-type="jakarta.security.enterprise.AuthenticationStatus">
<parameters>
<parameter>HttpServletRequest</parameter>
<parameter>HttpServletResponse</parameter>
<parameter>jakarta.security.enterprise.authentication.mechanism.http.HttpMessageContext</parameter>
</parameters>
<throw>jakarta.security.enterprise.AuthenticationException</throw>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>26</id>
<description>
                            Convenience method to clean the subject associated with this context.
                            
                                  Cleaning this subject is done as defined by the Servlet Container Profile of JASPIC  (JSR 196) for the ServerAuthModule#cleanSubject method and the   HttpAuthenticationMechanism#cleanSubject(HttpServletRequest, HttpServletResponse, HttpMessageContext)   method defined by this specification.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="cleanClientSubject" return-type="void"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>27</id>
<description>
                            Instructs the container to "do nothing".
                            
                                  When intending to do nothing, a JSR 375 authentication mechanism has to indicate this  explicitly via its return value.      As a convenience this method returns NOT_DONE, so this method can be used in  one fluent return statement from an HttpAuthenticationMechanism
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="doNothing" return-type="jakarta.security.enterprise.AuthenticationStatus"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>28</id>
<description>
                            Forwards to another resource (servlet, JSP file, or HTML file) on the server.
                            
                                  As a convenience this method returns SEND_CONTINUE, so this method can be used in  one fluent return statement from an HttpAuthenticationMechanism
                            
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="forward" return-type="jakarta.security.enterprise.AuthenticationStatus">
<parameters>
<parameter>java.lang.String</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>29</id>
<description>
                            Returns the parameters that were provided with the SecurityContext#authenticate(AuthParameters) call.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="getAuthParameters" return-type="jakarta.security.enterprise.authentication.mechanism.http.AuthenticationParameters"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>30</id>
<description>
                            Gets the Principal set by a call to notifyContainerAboutLogin().
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="getCallerPrincipal" return-type="java.security.Principal"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>31</id>
<description>
                            Returns the subject for which authentication is to take place.
                                  Note: This is a low level object that most higher level code would not need to use directly.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="getClientSubject" return-type="javax.security.auth.Subject"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>32</id>
<description>
                            Gets the groups set by a call to notifyContainerAboutLogin().
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="getGroups" return-type="java.util.Set"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>33</id>
<description>
                            
                            Returns the low level JSR 196 handler that the runtime provided when creating this HttpMessageContext,  and which this context uses to communicate the authentication details to the runtime.
                                  Note: This is a low level object that most higher level code would not need to use directly.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="getHandler" return-type="javax.security.auth.callback.CallbackHandler"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>34</id>
<description>
                            Returns the the low level JSR 196 message info instance for the current request.
                                  Note: This is a low level object that most higher level code would not need to use directly.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="getMessageInfo" return-type="MessageInfo"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>35</id>
<description>
                            Returns the request object associated with the current request.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="getRequest" return-type="HttpServletRequest"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>36</id>
<description>
                            Returns the response object associated with the current request.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="getResponse" return-type="HttpServletResponse"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>37</id>
<description>
                            
                            Checks if the current call to an authentication mechanism is the result from the   application calling SecurityContext#authenticate(HttpServletRequest, HttpServletResponse, AuthenticationParameters)
                                If SecurityContext#authenticate was not called, the authentication mechanism may have been invoked by the   container at the start of a request.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="isAuthenticationRequest" return-type="boolean"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>38</id>
<description>
                            Checks if the currently requested resource is protected or not.
                             A protected resource  is a resource (e.g. a Servlet, JSF page, JSP page etc) for which a constraint has been defined  in e.g. web.xml.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="isProtected" return-type="boolean"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>39</id>
<description>
                            Check if the runtime has been asked to register an authentication session duing the current request.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="isRegisterSession" return-type="boolean"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>40</id>
<description>
                            
                            Asks the container to register the given caller name and groups in order to make  them available to the application for use with SecurityContext#isCallerInRole(String) etc.
                            
                                 Note that after this call returned, the authenticated identity will not be immediately active. This  will only take place (should no errors occur) after the authentication mechanism  in which this call takes place returns control back to the container (runtime).      As a convenience this method returns SUCCESS, so this method can be used in  one fluent return statement from an HttpAuthenticationMechanism
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="notifyContainerAboutLogin" return-type="jakarta.security.enterprise.AuthenticationStatus">
<parameters>
<parameter>java.lang.String</parameter>
<parameter>java.util.Set</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>41</id>
<description>
                            
                            Asks the container to register the given caller principal and groups in order to make  them available to the application for use with SecurityContext#isCallerInRole(String) etc.
                            
                            
                            
                            
                            
                                  Note that this call may result in the container establishing two caller principals to  represent the caller's identity -- the Principal provided here as the principal parameter,  and a second principal used as the container's representation of the caller identity.  A second principal is added only if the container uses a different Principal type to  represent the caller. If the types are the same, only one Principal is added.      If a second principal is added, the value returned by Principal#getName()  will be the same for both principals.      When two principals are added, the container's caller principal is returned from  SecurityContext#getCallerPrincipal(), and the principal supplied here  as a parameter can be retrieved using SecurityContext#getPrincipalsByType(Class).  When only one is added, it is returned by SecurityContext#getCallerPrincipal().     Note that after this call returned, the authenticated identity will not be immediately active. This  will only take place (should no errors occur) after the authentication mechanism  in which this call takes place returns control back to the container (runtime).      As a convenience this method returns SUCCESS, so this method can be used in  one fluent return statement from an HttpAuthenticationMechanism
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="notifyContainerAboutLogin" return-type="jakarta.security.enterprise.AuthenticationStatus">
<parameters>
<parameter>java.security.Principal</parameter>
<parameter>java.util.Set</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>42</id>
<description>
                            Convenience method intended to pass the CredentialValidationResult result of an   identity store directly on to the container.
                            
                            
                            
                            
                            
                            
                                  If the outcome from the given CredentialValidationResult#getStatus() equals  Status#VALID, the CallerPrincipal and groups are obtained from the  CredentialValidationResult and passed into   HttpMessageContext#notifyContainerAboutLogin(Principal, Set).      If the outcome from the given CredentialValidationResult#getStatus() is not   equal to Status#VALID a failure result is returned.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="notifyContainerAboutLogin" return-type="jakarta.security.enterprise.AuthenticationStatus">
<parameters>
<parameter>jakarta.security.enterprise.identitystore.CredentialValidationResult</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>44</id>
<description>
                            Sets the response status to SC_FOUND 302 (Found)
                            
                                  As a convenience this method returns SEND_CONTINUE, so this method can be used in  one fluent return statement from an HttpAuthenticationMechanism
                            
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="redirect" return-type="jakarta.security.enterprise.AuthenticationStatus">
<parameters>
<parameter>java.lang.String</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>45</id>
<description>
                            Sets the response status to 404 (not found).
                            
                                As a convenience this method returns SEND_FAILURE, so this method can be used in  one fluent return statement from an HttpAuthenticationMechanism
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="responseNotFound" return-type="jakarta.security.enterprise.AuthenticationStatus"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>46</id>
<description>
                            Sets the response status to 401 (unauthorized).
                            
                                As a convenience this method returns SEND_FAILURE, so this method can be used in  one fluent return statement from an HttpAuthenticationMechanism
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="responseUnauthorized" return-type="jakarta.security.enterprise.AuthenticationStatus"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>47</id>
<description>
                            Asks the runtime to register an authentication session.
                            
                             This will automatically remember the logged-in status  as long as the current HTTP session remains valid. Without this being asked, a HttpAuthenticationMechanism   has to manually re-authenticate with the runtime at the start of each request.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="setRegisterSession" return-type="void">
<parameters>
<parameter>java.lang.String</parameter>
<parameter>java.util.Set</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>48</id>
<description>
                            Sets the request object.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="setRequest" return-type="void">
<parameters>
<parameter>HttpServletRequest</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>49</id>
<description>
                            Set the response object.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="setResponse" return-type="void">
<parameters>
<parameter>HttpServletResponse</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>50</id>
<description>
                            Sets the request object.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContext</class-interface>
<method name="withRequest" return-type="jakarta.security.enterprise.authentication.mechanism.http.HttpMessageContext">
<parameters>
<parameter>HttpServletRequest</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>51</id>
<description>
                            Convenience method to clean the subject associated with this context.
                            
                                  Cleaning this subject is done as defined by the Servlet Container Profile of JASPIC  (JSR 196) for the ServerAuthModule#cleanSubject method and the   HttpAuthenticationMechanism#cleanSubject(HttpServletRequest, HttpServletResponse, HttpMessageContext)   method defined by this specification.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="cleanClientSubject" return-type="void"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>52</id>
<description>
                            Instructs the container to "do nothing".
                            
                                  When intending to do nothing, a JSR 375 authentication mechanism has to indicate this  explicitly via its return value.      As a convenience this method returns NOT_DONE, so this method can be used in  one fluent return statement from an HttpAuthenticationMechanism
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="doNothing" return-type="jakarta.security.enterprise.AuthenticationStatus"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>53</id>
<description>
                            Forwards to another resource (servlet, JSP file, or HTML file) on the server.
                            
                                  As a convenience this method returns SEND_CONTINUE, so this method can be used in  one fluent return statement from an HttpAuthenticationMechanism
                            
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="forward" return-type="jakarta.security.enterprise.AuthenticationStatus">
<parameters>
<parameter>java.lang.String</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>54</id>
<description>
                            Returns the parameters that were provided with the SecurityContext#authenticate(AuthParameters) call.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="getAuthParameters" return-type="jakarta.security.enterprise.authentication.mechanism.http.AuthenticationParameters"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>55</id>
<description>
                            Gets the Principal set by a call to notifyContainerAboutLogin().
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="getCallerPrincipal" return-type="java.security.Principal"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>56</id>
<description>
                            Returns the subject for which authentication is to take place.
                                  Note: This is a low level object that most higher level code would not need to use directly.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="getClientSubject" return-type="javax.security.auth.Subject"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>57</id>
<description>
                            Gets the groups set by a call to notifyContainerAboutLogin().
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="getGroups" return-type="java.util.Set"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>58</id>
<description>
                            
                            Returns the low level JSR 196 handler that the runtime provided when creating this HttpMessageContext,  and which this context uses to communicate the authentication details to the runtime.
                                  Note: This is a low level object that most higher level code would not need to use directly.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="getHandler" return-type="javax.security.auth.callback.CallbackHandler"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>59</id>
<description>
                            Returns the the low level JSR 196 message info instance for the current request.
                                  Note: This is a low level object that most higher level code would not need to use directly.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="getMessageInfo" return-type="MessageInfo"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>60</id>
<description>
                            Returns the request object associated with the current request.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="getRequest" return-type="HttpServletRequest"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>61</id>
<description>
                            Returns the response object associated with the current request.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="getResponse" return-type="HttpServletResponse"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>62</id>
<description/>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="getWrapped" return-type="jakarta.security.enterprise.authentication.mechanism.http.HttpMessageContext"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>63</id>
<description/>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="HttpMessageContextWrapper" return-type="HttpMessageContextWrapper">
<parameters>
<parameter>jakarta.security.enterprise.authentication.mechanism.http.HttpMessageContext</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>64</id>
<description>
                            
                            Checks if the current call to an authentication mechanism is the result from the   application calling SecurityContext#authenticate(HttpServletRequest, HttpServletResponse, AuthenticationParameters)
                                If SecurityContext#authenticate was not called, the authentication mechanism may have been invoked by the   container at the start of a request.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="isAuthenticationRequest" return-type="boolean"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>65</id>
<description>
                            Checks if the currently requested resource is protected or not.
                             A protected resource  is a resource (e.g. a Servlet, JSF page, JSP page etc) for which a constraint has been defined  in e.g. web.xml.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="isProtected" return-type="boolean"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>66</id>
<description>
                            Check if the runtime has been asked to register an authentication session duing the current request.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="isRegisterSession" return-type="boolean"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>67</id>
<description>
                            
                            Asks the container to register the given caller name and groups in order to make  them available to the application for use with SecurityContext#isCallerInRole(String) etc.
                            
                                 Note that after this call returned, the authenticated identity will not be immediately active. This  will only take place (should no errors occur) after the authentication mechanism  in which this call takes place returns control back to the container (runtime).      As a convenience this method returns SUCCESS, so this method can be used in  one fluent return statement from an HttpAuthenticationMechanism
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="notifyContainerAboutLogin" return-type="jakarta.security.enterprise.AuthenticationStatus">
<parameters>
<parameter>java.lang.String</parameter>
<parameter>java.util.Set</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>68</id>
<description>
                            
                            Asks the container to register the given caller principal and groups in order to make  them available to the application for use with SecurityContext#isCallerInRole(String) etc.
                            
                            
                            
                            
                            
                                  Note that this call may result in the container establishing two caller principals to  represent the caller's identity -- the Principal provided here as the principal parameter,  and a second principal used as the container's representation of the caller identity.  A second principal is added only if the container uses a different Principal type to  represent the caller. If the types are the same, only one Principal is added.      If a second principal is added, the value returned by Principal#getName()  will be the same for both principals.      When two principals are added, the container's caller principal is returned from  SecurityContext#getCallerPrincipal(), and the principal supplied here  as a parameter can be retrieved using SecurityContext#getPrincipalsByType(Class).  When only one is added, it is returned by SecurityContext#getCallerPrincipal().     Note that after this call returned, the authenticated identity will not be immediately active. This  will only take place (should no errors occur) after the authentication mechanism  in which this call takes place returns control back to the container (runtime).      As a convenience this method returns SUCCESS, so this method can be used in  one fluent return statement from an HttpAuthenticationMechanism
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="notifyContainerAboutLogin" return-type="jakarta.security.enterprise.AuthenticationStatus">
<parameters>
<parameter>java.security.Principal</parameter>
<parameter>java.util.Set</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>69</id>
<description>
                            Convenience method intended to pass the CredentialValidationResult result of an   identity store directly on to the container.
                            
                            
                            
                            
                            
                            
                                  If the outcome from the given CredentialValidationResult#getStatus() equals  Status#VALID, the CallerPrincipal and groups are obtained from the  CredentialValidationResult and passed into   HttpMessageContext#notifyContainerAboutLogin(Principal, Set).      If the outcome from the given CredentialValidationResult#getStatus() is not   equal to Status#VALID a failure result is returned.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="notifyContainerAboutLogin" return-type="jakarta.security.enterprise.AuthenticationStatus">
<parameters>
<parameter>jakarta.security.enterprise.identitystore.CredentialValidationResult</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>71</id>
<description>
                            Sets the response status to SC_FOUND 302 (Found)
                            
                                  As a convenience this method returns SEND_CONTINUE, so this method can be used in  one fluent return statement from an HttpAuthenticationMechanism
                            
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="redirect" return-type="jakarta.security.enterprise.AuthenticationStatus">
<parameters>
<parameter>java.lang.String</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>72</id>
<description>
                            Sets the response status to 404 (not found).
                            
                                As a convenience this method returns SEND_FAILURE, so this method can be used in  one fluent return statement from an HttpAuthenticationMechanism
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="responseNotFound" return-type="jakarta.security.enterprise.AuthenticationStatus"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>73</id>
<description>
                            Sets the response status to 401 (unauthorized).
                            
                                As a convenience this method returns SEND_FAILURE, so this method can be used in  one fluent return statement from an HttpAuthenticationMechanism
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="responseUnauthorized" return-type="jakarta.security.enterprise.AuthenticationStatus"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>74</id>
<description>
                            Asks the runtime to register an authentication session.
                            
                             This will automatically remember the logged-in status  as long as the current HTTP session remains valid. Without this being asked, a HttpAuthenticationMechanism   has to manually re-authenticate with the runtime at the start of each request.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="setRegisterSession" return-type="void">
<parameters>
<parameter>java.lang.String</parameter>
<parameter>java.util.Set</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>75</id>
<description>
                            Sets the request object.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="setRequest" return-type="void">
<parameters>
<parameter>HttpServletRequest</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>76</id>
<description>
                            Set the response object.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="setResponse" return-type="void">
<parameters>
<parameter>HttpServletResponse</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>77</id>
<description>
                            Sets the request object.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>HttpMessageContextWrapper</class-interface>
<method name="withRequest" return-type="jakarta.security.enterprise.authentication.mechanism.http.HttpMessageContext">
<parameters>
<parameter>HttpServletRequest</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>78</id>
<description>
                            
                            The resource (page) a caller should get to see in case an error, such as providing invalid  credentials, occurs on the page set by LoginToContinue#loginPage().
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>LoginToContinue</class-interface>
<method name="errorPage" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>79</id>
<description>
                            The resource (page) a caller should get to see in case the originally requested  resource requires authentication, and the caller is currently not authenticated.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>LoginToContinue</class-interface>
<method name="loginPage" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>80</id>
<description>
                            
                            Use a forward to reach the page set by the LoginToContinue#loginPage()   if true, otherwise use a redirect.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>LoginToContinue</class-interface>
<method name="useForwardToLogin" return-type="boolean"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>165</id>
<description>
                            EL expression variant of useForwardToLogin().
                              The expression needs to evaluate to a boolean outcome. All named CDI beans are available   to the expression. If both this attribute and useForwardToLogin() are specified, this  attribute take precedence.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>LoginToContinue</class-interface>
<method name="useForwardToLoginExpression" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>81</id>
<description>
                            Flag to indicate that the remember me cookie should not be exposed to  client-side scripting code, and should only be sent with HTTP requests.
                            
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>RememberMe</class-interface>
<method name="cookieHttpOnly" return-type="boolean"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>166</id>
<description>
                            EL expression variant of cookieHttpOnly().
                            
                            
                              The expression needs to evaluate to a boolean outcome. All named CDI beans are available to the expression  as well as default classes as specified by EL 3.0 for the ELProcessor  and the implicit objects "self" which refers to the interceptor target and  "httpMessageContext" which refers to the current HttpMessageContext.   If both this attribute and cookieHttpOnly() are specified, this  attribute takes precedence.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>RememberMe</class-interface>
<method name="cookieHttpOnlyExpression" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>82</id>
<description>
                            Max age in seconds for the remember me cookie.
                              Defaults to one day.
                            
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>RememberMe</class-interface>
<method name="cookieMaxAgeSeconds" return-type="int"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>167</id>
<description>
                            EL expression variant of cookieMaxAgeSeconds().
                            
                            
                              The expression needs to evaluate to an integer outcome. All named CDI beans are available to the expression  as well as default classes as specified by EL 3.0 for the ELProcessor  and the implicit objects "self" which refers to the interceptor target and  "httpMessageContext" which refers to the current HttpMessageContext.   If both this attribute and cookieMaxAgeSeconds() are specified, this  attribute takes precedence.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>RememberMe</class-interface>
<method name="cookieMaxAgeSecondsExpression" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>83</id>
<description>
                            Name of the remember me cookie.
                            
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>RememberMe</class-interface>
<method name="cookieName" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>84</id>
<description>
                            Flag to indicate that the remember me cookie should only be   sent using a secure protocol (e.g.
                             HTTPS or SSL).
                            
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>RememberMe</class-interface>
<method name="cookieSecureOnly" return-type="boolean"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>168</id>
<description>
                            EL expression variant of cookieSecureOnly().
                            
                            
                              The expression needs to evaluate to a boolean outcome. All named CDI beans are available to the expression  as well as default classes as specified by EL 3.0 for the ELProcessor  and the implicit objects "self" which refers to the interceptor target and  "httpMessageContext" which refers to the current HttpMessageContext.   If both this attribute and cookieSecureOnly() are specified, this  attribute takes precedence.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>RememberMe</class-interface>
<method name="cookieSecureOnlyExpression" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>169</id>
<description>
                            Flag to determine if remember me should be used.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>RememberMe</class-interface>
<method name="isRememberMe" return-type="boolean"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>88</id>
<description>
                            EL expression to determine if remember me should be used.
                            
                            
                             This is evaluated  for every request requiring authentication. The expression needs to evaluate  to a boolean outcome. All named CDI beans are available to the expression  as well as default classes as specified by EL 3.0 for the ELProcessor  and the implicit objects "self" which refers to the interceptor target and  "httpMessageContext" which refers to the current HttpMessageContext.
                        </description>
<package>jakarta.security.enterprise.authentication.mechanism.http</package>
<class-interface>RememberMe</class-interface>
<method name="isRememberMeExpression" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>131</id>
<description/>
<package>jakarta.security.enterprise.credential</package>
<class-interface>AbstractClearableCredential</class-interface>
<method name="AbstractClearableCredential" return-type="AbstractClearableCredential"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>132</id>
<description>
                            Clears the credential.
                             For example, if the credential includes a password,  this method would overwrite the password value.
                        </description>
<package>jakarta.security.enterprise.credential</package>
<class-interface>AbstractClearableCredential</class-interface>
<method name="clear" return-type="void"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>133</id>
<description>
                            Determines whether the credential value has been securely cleared.
                        </description>
<package>jakarta.security.enterprise.credential</package>
<class-interface>AbstractClearableCredential</class-interface>
<method name="isCleared" return-type="boolean"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>134</id>
<description>
                            Constructor
                        </description>
<package>jakarta.security.enterprise.credential</package>
<class-interface>BasicAuthenticationCredential</class-interface>
<method name="BasicAuthenticationCredential" return-type="BasicAuthenticationCredential">
<parameters>
<parameter>java.lang.String</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>135</id>
<description/>
<package>jakarta.security.enterprise.credential</package>
<class-interface>CallerOnlyCredential</class-interface>
<method name="CallerOnlyCredential" return-type="CallerOnlyCredential">
<parameters>
<parameter>java.lang.String</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>136</id>
<description/>
<package>jakarta.security.enterprise.credential</package>
<class-interface>CallerOnlyCredential</class-interface>
<method name="getCaller" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>137</id>
<description>
                            Clears the credential.
                             For example, if the credential includes a password,  this method would overwrite the password value.
                        </description>
<package>jakarta.security.enterprise.credential</package>
<class-interface>Credential</class-interface>
<method name="clear" return-type="void"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>138</id>
<description>
                            Determines whether the credential value has been securely cleared.
                        </description>
<package>jakarta.security.enterprise.credential</package>
<class-interface>Credential</class-interface>
<method name="isCleared" return-type="boolean"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>139</id>
<description>
                            Determines whether the credential is valid.
                             This would be called as part of  the credential validation process to check the integrity of the credential,  such as a signature check. This check would be self-contained,  not requiring identity store access.
                        </description>
<package>jakarta.security.enterprise.credential</package>
<class-interface>Credential</class-interface>
<method name="isValid" return-type="boolean"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>140</id>
<description>
                            Securely clears the password value.
                        </description>
<package>jakarta.security.enterprise.credential</package>
<class-interface>Password</class-interface>
<method name="clear" return-type="void"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>141</id>
<description/>
<package>jakarta.security.enterprise.credential</package>
<class-interface>Password</class-interface>
<method name="compareTo" return-type="boolean">
<parameters>
<parameter>java.lang.String</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>142</id>
<description>
                            Determines the password value.
                        </description>
<package>jakarta.security.enterprise.credential</package>
<class-interface>Password</class-interface>
<method name="getValue" return-type="char[]"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>143</id>
<description>
                            Constructor
                        </description>
<package>jakarta.security.enterprise.credential</package>
<class-interface>Password</class-interface>
<method name="Password" return-type="Password">
<parameters>
<parameter>char[]</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>144</id>
<description>
                            Constructor
                        </description>
<package>jakarta.security.enterprise.credential</package>
<class-interface>Password</class-interface>
<method name="Password" return-type="Password">
<parameters>
<parameter>java.lang.String</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>145</id>
<description>
                            Determines the token value to compare for authentication.
                        </description>
<package>jakarta.security.enterprise.credential</package>
<class-interface>RememberMeCredential</class-interface>
<method name="getToken" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>146</id>
<description>
                            Constructor
                        </description>
<package>jakarta.security.enterprise.credential</package>
<class-interface>RememberMeCredential</class-interface>
<method name="RememberMeCredential" return-type="RememberMeCredential">
<parameters>
<parameter>java.lang.String</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>147</id>
<description>
                            Invokes the specific subclass to securely clear the credential value.
                            
                              Some Credential subclasses contain credential values  which are inherently secure, such as tokens, for which clearing the  credential may not be necessary.    For example, if the credential includes a password,  this method would overwrite the password value.
                        </description>
<package>jakarta.security.enterprise.credential</package>
<class-interface>UsernamePasswordCredential</class-interface>
<method name="clearCredential" return-type="void"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>148</id>
<description/>
<package>jakarta.security.enterprise.credential</package>
<class-interface>UsernamePasswordCredential</class-interface>
<method name="compareTo" return-type="boolean">
<parameters>
<parameter>java.lang.String</parameter>
<parameter>java.lang.String</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>149</id>
<description/>
<package>jakarta.security.enterprise.credential</package>
<class-interface>UsernamePasswordCredential</class-interface>
<method name="getCaller" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>150</id>
<description>
                            Determines the password.
                        </description>
<package>jakarta.security.enterprise.credential</package>
<class-interface>UsernamePasswordCredential</class-interface>
<method name="getPassword" return-type="jakarta.security.enterprise.credential.Password"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>151</id>
<description>
                            Determines the password.
                        </description>
<package>jakarta.security.enterprise.credential</package>
<class-interface>UsernamePasswordCredential</class-interface>
<method name="getPasswordAsString" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>152</id>
<description>
                            Constructor.
                        </description>
<package>jakarta.security.enterprise.credential</package>
<class-interface>UsernamePasswordCredential</class-interface>
<method name="UsernamePasswordCredential" return-type="UsernamePasswordCredential">
<parameters>
<parameter>java.lang.String</parameter>
<parameter>java.lang.String</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>153</id>
<description>
                            Constructor.
                        </description>
<package>jakarta.security.enterprise.credential</package>
<class-interface>UsernamePasswordCredential</class-interface>
<method name="UsernamePasswordCredential" return-type="UsernamePasswordCredential">
<parameters>
<parameter>java.lang.String</parameter>
<parameter>jakarta.security.enterprise.credential.Password</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>89</id>
<description>
                            Constructor for a VALID result.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>CredentialValidationResult</class-interface>
<method name="CredentialValidationResult" return-type="CredentialValidationResult">
<parameters>
<parameter>java.lang.String</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>90</id>
<description>
                            Constructor for a VALID result.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>CredentialValidationResult</class-interface>
<method name="CredentialValidationResult" return-type="CredentialValidationResult">
<parameters>
<parameter>jakarta.security.enterprise.CallerPrincipal</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>91</id>
<description>
                            Constructor for a VALID result.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>CredentialValidationResult</class-interface>
<method name="CredentialValidationResult" return-type="CredentialValidationResult">
<parameters>
<parameter>java.lang.String</parameter>
<parameter>java.util.Set</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>92</id>
<description>
                            Constructor for a VALID result.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>CredentialValidationResult</class-interface>
<method name="CredentialValidationResult" return-type="CredentialValidationResult">
<parameters>
<parameter>jakarta.security.enterprise.CallerPrincipal</parameter>
<parameter>java.util.Set</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>93</id>
<description>
                            Constructor for a VALID result.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>CredentialValidationResult</class-interface>
<method name="CredentialValidationResult" return-type="CredentialValidationResult">
<parameters>
<parameter>java.lang.String</parameter>
<parameter>java.lang.String</parameter>
<parameter>java.lang.String</parameter>
<parameter>java.lang.String</parameter>
<parameter>java.util.Set</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>94</id>
<description>
                            Constructor for a VALID result.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>CredentialValidationResult</class-interface>
<method name="CredentialValidationResult" return-type="CredentialValidationResult">
<parameters>
<parameter>java.lang.String</parameter>
<parameter>jakarta.security.enterprise.CallerPrincipal</parameter>
<parameter>java.lang.String</parameter>
<parameter>java.lang.String</parameter>
<parameter>java.util.Set</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>170</id>
<description>
                            Return the CallerPrincipal for the validated credential.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>CredentialValidationResult</class-interface>
<method name="getCallerDn" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>90</id>
<description>
                            Determines the set of groups that the specified Caller is in, based on  the associated identity store.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>CredentialValidationResult</class-interface>
<method name="getCallerGroups" return-type="java.util.Set"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>96</id>
<description>
                            Return the CallerPrincipal for the validated credential.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>CredentialValidationResult</class-interface>
<method name="getCallerPrincipal" return-type="jakarta.security.enterprise.CallerPrincipal"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>97</id>
<description>
                            Return a string that uniquely identifies this caller within the identity store  (since the Principal name used may not be unique).
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>CredentialValidationResult</class-interface>
<method name="getCallerUniqueId" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>98</id>
<description>
                            Return the unique ID of the identity store used to validate the credentials.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>CredentialValidationResult</class-interface>
<method name="getIdentityStoreId" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>99</id>
<description>
                            Determines the validation status.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>CredentialValidationResult</class-interface>
<method name="getStatus" return-type="jakarta.security.enterprise.identitystore.CredentialValidationResult.CredentialValidationResult.Status"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>100</id>
<description/>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>CredentialValidationResult.Status</class-interface>
<method name="valueOf" return-type="jakarta.security.enterprise.identitystore.CredentialValidationResult.CredentialValidationResult.Status">
<parameters>
<parameter>java.lang.String</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>101</id>
<description/>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>CredentialValidationResult.Status</class-interface>
<method name="values" return-type="jakarta.security.enterprise.identitystore.CredentialValidationResult.CredentialValidationResult.Status[]"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>112</id>
<description>
                            SQL query to validate the {caller, password} pair.
                            
                            
                               Only needed when #useFor() contains  ValidationType#VALIDATE.     The name of the caller that is to be authenticated has to be set as the  one and only placeholder. The (hashed) password should be in the first  column of the result.     Example query:      select password from callers where name = ?    
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>DatabaseIdentityStoreDefinition</class-interface>
<method name="callerQuery" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>113</id>
<description>
                            Full JNDI name of the data source that provides access to the data base  where the caller identities are stored.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>DatabaseIdentityStoreDefinition</class-interface>
<method name="dataSourceLookup" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>114</id>
<description>
                            SQL query to retrieve the groups associated with the caller when  authentication succeeds.
                            
                            
                               Only needed when #useFor() contains  ValidationType#PROVIDE_GROUPS.     The name of the caller that has been authenticated has to be set as the  one and only placeholder. The group name should be in the first column of  the result.     Example query:      select group_name from caller_groups where caller_name = ?    
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>DatabaseIdentityStoreDefinition</class-interface>
<method name="groupsQuery" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>115</id>
<description>
                            
                            Hash algorithm applied to plain text password for comparison with  password returned from #callerQuery().
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>DatabaseIdentityStoreDefinition</class-interface>
<method name="hashAlgorithm" return-type="java.lang.Class"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>171</id>
<description>
                            Used to specify algorithm specific parameters, such as:
                                  PBKDF2.iterations  PBKDF2.salt         Parameters are specified using the format:   parameterName=parameterValue with one parameter per array element.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>DatabaseIdentityStoreDefinition</class-interface>
<method name="hashAlgorithmParameters" return-type="java.lang.String[]"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>117</id>
<description>
                            Determines the order in case multiple IdentityStores are found.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>DatabaseIdentityStoreDefinition</class-interface>
<method name="priority" return-type="int"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>172</id>
<description>
                            Allow priority to be specified as an EL expression.
                              If set, overrides any value set with priority.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>DatabaseIdentityStoreDefinition</class-interface>
<method name="priorityExpression" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>118</id>
<description>
                            Determines what the identity store is used for
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>DatabaseIdentityStoreDefinition</class-interface>
<method name="useFor" return-type="jakarta.security.enterprise.identitystore.IdentityStore.IdentityStore.ValidationType[]"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>173</id>
<description>
                            Allow useFor to be specified as an EL expression.
                              If set, overrides any value set with useFor.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>DatabaseIdentityStoreDefinition</class-interface>
<method name="useForExpression" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>102</id>
<description/>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>IdentityStore</class-interface>
<method name="getCallerGroups" return-type="java.util.Set">
<parameters>
<parameter>jakarta.security.enterprise.identitystore.CredentialValidationResult</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>103</id>
<description>
                            Determines the order of multiple IdentityStores.
                             Stores are consulted lower number first.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>IdentityStore</class-interface>
<method name="priority" return-type="int"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>104</id>
<description>
                            Validates the given credential.
                            
                                  As a convenience a default implementation is provided that looks up an overload of this method  with as the one and only parameter a subclass of Credential. Here is an example of what  an implementation of this interface looks like with such overloaded method:   public class ExampleIdentityStore implements IdentityStore {      public CredentialValidationResult validate(UsernamePasswordCredential usernamePasswordCredential) {         // Implementation ...         return INVALID_RESULT;     }   }      Note that the overloaded method is only called when the actual type passed into this method will exactly match  the parameter type of the overloaded method. There's no attempt being done to find the most specific overloaded method  such as specified in JLS 15.2.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>IdentityStore</class-interface>
<method name="validate" return-type="jakarta.security.enterprise.identitystore.CredentialValidationResult">
<parameters>
<parameter>jakarta.security.enterprise.credential.Credential</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>105</id>
<description>
                            Determines the type of validation the IdentityStore should be used for.
                               By default, its used for credential validation AND providing groups.    Note that implementers of this API should not return a direct reference  to a Set used internally to represent an IdentityStore's validation types,  unless it is an immutable Set. Callers of the API should be aware that  the returned Set may be immutable, or a copy, and that, in any case,  it should not be modified by the caller.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>IdentityStore</class-interface>
<method name="validationTypes" return-type="java.util.Set"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>106</id>
<description/>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>IdentityStore.ValidationType</class-interface>
<method name="valueOf" return-type="jakarta.security.enterprise.identitystore.IdentityStore.IdentityStore.ValidationType">
<parameters>
<parameter>java.lang.String</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>107</id>
<description/>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>IdentityStore.ValidationType</class-interface>
<method name="values" return-type="jakarta.security.enterprise.identitystore.IdentityStore.IdentityStore.ValidationType[]"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>108</id>
<description>
                            Validates the given credential.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>IdentityStoreHandler</class-interface>
<method name="validate" return-type="jakarta.security.enterprise.identitystore.CredentialValidationResult">
<parameters>
<parameter>jakarta.security.enterprise.credential.Credential</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>119</id>
<description>
                            Distinguished name for the application or administrative user that will be used to  make the initial connection to the LDAP and to perform searches and lookups.
                                This value is needed if caller or group lookup will be done. It is not needed if the  store will be used only to authenticate callers using direct binding (see callerBaseDn).    This user needs search permission in the LDAP for persons and/or groups.    E.g.: uid=ldap,ou=apps,dc=jsr375,dc=net
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="bindDn" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>125</id>
<description>
                            Password for the application/admin user defined by the bindDn member.
                              Only used when the member bindDn is filled in.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="bindDnPassword" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>120</id>
<description>
                            Base distinguished name for callers in the LDAP store  (e.g., "ou=caller,dc=jsr375,dc=net").
                                When this member value is specified, and callerSearchBase is not, direct binding is attempted.    The callerNameAttribute must be specified along with this attribute so that the  runtime can create the "leaf" RDN needed to concatenate with the base DN to create the  full DN of the caller.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="callerBaseDn" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>121</id>
<description>
                            Name of the attribute that contains the callers name in the person object  (e.g., "uid").
                                This attribute will be used, with callerBaseDn, to construct caller DNs for direct binding.  It is also used to retrieve the caller's name when the caller object is instead looked up  using search.    The value of this attribute is returned as the caller principal name  for a successful credential validation.    The following gives an example in ldif format:      dn: uid=peter,ou=caller,dc=jsr375,dc=net  objectclass: top  objectclass: uidObject  objectclass: person  uid: peter  cn: Peter Smith  sn: Peter  userPassword: secret1    
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="callerNameAttribute" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>127</id>
<description>
                            Search base for looking up callers  (e.g., "ou=caller,dc=jsr375,dc=net").
                                Overrides callerBaseDn, if configured, causing caller search  to be used instead of direct binding.  Requires that the bindDn member be filled in.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="callerSearchBase" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>128</id>
<description>
                            Search filter to find callers when callerSearchBase is set.
                              The search is performed starting from the callerSearchBase DN  with the scope specified by callerSearchScope.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="callerSearchFilter" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>174</id>
<description>
                            Search scope for caller searches: determines depth  of the search in the LDAP tree.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="callerSearchScope" return-type="jakarta.security.enterprise.identitystore.LdapIdentityStoreDefinition.LdapIdentityStoreDefinition.LdapSearchScope"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>175</id>
<description>
                            Allow callerSearchScope to be specified as an EL expression.
                              If set, overrides any value set with callerSearchScope.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="callerSearchScopeExpression" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>123</id>
<description>
                            Name of the attribute in a group object that identifies the  members of the  group  (e.g., "member").
                                The value of this attribute must be the full DN of the caller. The following gives an example  entry in ldif format:      dn: cn=foo,ou=group,dc=jsr375,dc=net  objectclass: top  objectclass: groupOfNames  cn: foo  member: uid=pete,ou=caller,dc=jsr375,dc=net  member: uid=john,ou=caller,dc=jsr375,dc=net    
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="groupMemberAttribute" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>176</id>
<description>
                            Name of the attribute in a person object that identifies the groups  the caller belongs to  (e.g., "memberOf").
                            
                            
                                This attribute is used only if: a) group search is not configured  (i.e., no groupSearchBase and groupSearchFilter configured); and,  b) the caller's DN is available, either because groups are being returned  during the credential validation phase by an identity store that performs  both validation and group lookup, or because the DN is available in the  CredentialValidationResult passed to the  IdentityStore#getCallerGroups(CredentialValidationResult) method.    The value of this attribute must be the full DN of the group. The following gives an example  entry in ldif format:      dn: uid=peter,ou=caller,dc=jsr375,dc=net  objectclass: top  objectclass: uidObject  objectclass: person  uid: peter  cn: Peter Smith  memberOf: cn=foo,ou=group,dc=jsr375,dc=net  memberOf: cn=bar,ou=group,dc=jsr375,dc=net    
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="groupMemberOfAttribute" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>124</id>
<description>
                            Name of the attribute of a group object that represents the group name  (e.g., "cn")
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="groupNameAttribute" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>122</id>
<description>
                            Search base for looking up groups  (e.g., "ou=group,dc=jsr375,dc=net").
                                Needed only for a store that performs group lookup.  Requires that the bindDn member be filled in.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="groupSearchBase" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>178</id>
<description>
                            Search filter to find groups when groupSearchBase is set.
                              The search is performed starting from the groupSearchBase DN  with the scope specified by groupSearchScope.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="groupSearchFilter" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>179</id>
<description>
                            Search scope for group searches, determines depth  of the search in the LDAP tree.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="groupSearchScope" return-type="jakarta.security.enterprise.identitystore.LdapIdentityStoreDefinition.LdapIdentityStoreDefinition.LdapSearchScope"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>180</id>
<description>
                            Allow groupSearchScope to be specified as an EL expression.
                              If set, overrides any value set with groupSearchScope.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="groupSearchScopeExpression" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>181</id>
<description>
                            Set the maximum number of results (objects) the server should  return in response to a search.
                                The default value is set to 1000, which corresponds to the  maximum number of results most LDAP servers will return for  in a single response. Most LDAP servers support paging through  result sets larger than 1000, but doing so should rarely be  necessary for normal validation and group lookup use cases.  Implementations of the built-in LDAP IdentityStore MAY support  paging through larger result sets, but are NOT REQUIRED to.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="maxResults" return-type="int"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>182</id>
<description>
                            Allow maxResults to be specified as an EL expression.
                              If set, overrides any value set with maxResults.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="maxResultsExpression" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>126</id>
<description>
                            Determines the order in case multiple IdentityStores are found.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="priority" return-type="int"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>183</id>
<description>
                            Allow priority to be specified as an EL expression.
                              If set, overrides any value set with priority.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="priorityExpression" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>184</id>
<description>
                            Set the timeout value that should be used when waiting for  the LDAP server to return results.
                             Note that this is different  from the connection timeout for the underlying socket connection;    The default value of 0 means wait forever (assuming the connection  itself does not time out).
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="readTimeout" return-type="int"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>185</id>
<description>
                            Allow readTimeout to be specified as an EL expression.
                              If set, overrides any value set with readTimeout.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="readTimeoutExpression" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>129</id>
<description>
                            URL where the LDAP server can be reached.
                                E.g.: ldap://localhost:33389
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="url" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>130</id>
<description>
                            Determines what the identity store is used for
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="useFor" return-type="jakarta.security.enterprise.identitystore.IdentityStore.IdentityStore.ValidationType[]"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>186</id>
<description>
                            Allow useFor to be specified as an EL expression.
                              If set, overrides any value set with useFor.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition</class-interface>
<method name="useForExpression" return-type="java.lang.String"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>187</id>
<description/>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition.LdapSearchScope</class-interface>
<method name="valueOf" return-type="jakarta.security.enterprise.identitystore.LdapIdentityStoreDefinition.LdapIdentityStoreDefinition.LdapSearchScope">
<parameters>
<parameter>java.lang.String</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>188</id>
<description/>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>LdapIdentityStoreDefinition.LdapSearchScope</class-interface>
<method name="values" return-type="jakarta.security.enterprise.identitystore.LdapIdentityStoreDefinition.LdapIdentityStoreDefinition.LdapSearchScope[]"/>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>189</id>
<description>
                            Generate an encoded password hash value for storage in a user's account.
                            
                                This method should not be used to generate a password hash for verification purposes;  use #verify(char[], String) for that purpose. Use this method only to generate  hash values when processing a new or changed password.    The returned hash value should be fully encoded such that it can be directly stored, as is,  with no additional format or encoding changes.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>PasswordHash</class-interface>
<method name="generate" return-type="java.lang.String">
<parameters>
<parameter>char[]</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>190</id>
<description>
                            Initialize the instance with the parameters it should use to  generate and verify password hashes.
                            
                            
                             The parameters are the  name/value pairs specified with the  DatabaseIdentityStoreDefinition#hashAlgorithmParameters()  attribute.    An implementation is not required to support parameters, and may  ignore parameters passed to it. It is also possible that an implementation  will use the specified parameters when generating a new password hash,  but ignore them in favor of parameters stored with an existing password  hash when verifying.    If not parameters were provided, the argument is an empty Map.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>PasswordHash</class-interface>
<method name="initialize" return-type="void">
<parameters>
<parameter>java.util.Map</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>191</id>
<description>
                            Verify a user's password against the corresponding password hash value.
                                The password hash value should be provided exactly as retrieved from the identity store,  with no decoding or formatting applied. The provided password value will be hashed and  compared to the decoded hashed password value.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>PasswordHash</class-interface>
<method name="verify" return-type="boolean">
<parameters>
<parameter>char[]</parameter>
<parameter>java.lang.String</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>109</id>
<description>
                            Associates the given principal and groups with a token.
                            
                            
                                The token generated by this method is intended to be used with the  RememberMeCredential and passed into the #validate(RememberMeCredential)  method.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>RememberMeIdentityStore</class-interface>
<method name="generateLoginToken" return-type="java.lang.String">
<parameters>
<parameter>jakarta.security.enterprise.CallerPrincipal</parameter>
<parameter>java.util.Set</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>110</id>
<description>
                            Dissociates the principal and groups that were associated with the token before  and removes the token itself.
                                If the token did not exist (i.e. no principal and groups were associated with that token)  no exception will be thrown.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>RememberMeIdentityStore</class-interface>
<method name="removeLoginToken" return-type="void">
<parameters>
<parameter>java.lang.String</parameter>
</parameters>
</method>
</assertion>
<assertion required="true" impl-spec="false" status="active" testable="true">
<id>111</id>
<description>
                            Validates the given credential.
                        </description>
<package>jakarta.security.enterprise.identitystore</package>
<class-interface>RememberMeIdentityStore</class-interface>
<method name="validate" return-type="jakarta.security.enterprise.identitystore.CredentialValidationResult">
<parameters>
<parameter>jakarta.security.enterprise.credential.RememberMeCredential</parameter>
</parameters>
</method>
</assertion>
</assertions>
</javadoc>
