1package org.apache.archiva.redback.rest.api.services;
2/*3 * Licensed to the Apache Software Foundation (ASF) under one4 * or more contributor license agreements. See the NOTICE file5 * distributed with this work for additional information6 * regarding copyright ownership. The ASF licenses this file7 * to you under the Apache License, Version 2.0 (the8 * "License"); you may not use this file except in compliance9 * with the License. You may obtain a copy of the License at10 *11 * http://www.apache.org/licenses/LICENSE-2.012 *13 * Unless required by applicable law or agreed to in writing,14 * software distributed under the License is distributed on an15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY16 * KIND, either express or implied. See the License for the17 * specific language governing permissions and limitations18 * under the License.19 */2021import org.apache.archiva.redback.authorization.RedbackAuthorization;
22import org.apache.archiva.redback.rest.api.model.User;
2324import javax.ws.rs.GET;
25import javax.ws.rs.Path;
26import javax.ws.rs.Produces;
27import javax.ws.rs.QueryParam;
28import javax.ws.rs.core.MediaType;
2930/**31 * @author Olivier Lamy32 * @since 1.433 */34 @Path( "/passwordService/" )
35publicinterfacePasswordService36 {
3738/**39 * used to change the password on first user connection after registration use.40 * the key is mandatory and a control will be done on the username provided.41 * <b>need to be logged by {@link UserService#validateUserFromKey(String)}</b>42 * @return username43 */44 @GET
45 @Path( "changePasswordWithKey" )
46 @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
47 @RedbackAuthorization( noRestriction = true, noPermission = true )
48User changePasswordWithKey( @QueryParam( "password" ) String password,
49 @QueryParam( "passwordConfirmation" ) String passwordConfirmation,
50 @QueryParam( "key" ) String key )
51throws RedbackServiceException;
5253/**54 * used to change the password on passwordChangeRequired state.55 */56 @GET
57 @Path( "changePassword" )
58 @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
59 @RedbackAuthorization( noRestriction = true, noPermission = true )
60User changePassword( @QueryParam( "userName" ) String userName,
61 @QueryParam( "previousPassword" ) String previousPassword,
62 @QueryParam( "password" ) String password,
63 @QueryParam( "passwordConfirmation" ) String passwordConfirmation )
64throws RedbackServiceException;
65 }