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 }