View Javadoc
1   /*
2    * Copyright 2012-2025 CodeLibs Project and the Others.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
13   * either express or implied. See the License for the specific language
14   * governing permissions and limitations under the License.
15   */
16  package org.codelibs.fess.auth.chain;
17  
18  import org.codelibs.fess.opensearch.user.exentity.User;
19  
20  /**
21   * Interface for authentication chain operations.
22   * Provides methods for user management and authentication operations.
23   */
24  public interface AuthenticationChain {
25  
26      /**
27       * Updates an existing user in the authentication chain.
28       * @param user The user to update.
29       */
30      void update(User user);
31  
32      /**
33       * Deletes a user from the authentication chain.
34       * @param user The user to delete.
35       */
36      void delete(User user);
37  
38      /**
39       * Changes the password for the specified user.
40       * @param username The username for which to change the password.
41       * @param password The new password.
42       * @return True if the password was successfully changed, false otherwise.
43       */
44      boolean changePassword(String username, String password);
45  
46      /**
47       * Loads user information from the authentication chain.
48       * @param user The user template containing search criteria.
49       * @return The loaded user, or null if not found.
50       */
51      User load(User user);
52  
53  }