This project has retired. For details please refer to its Attic page.
PasswordRuleViolationExceptionMapper xref
View Javadoc

1   package org.apache.archiva.redback.rest.services.interceptors;
2   /*
3    * Licensed to the Apache Software Foundation (ASF) under one
4    * or more contributor license agreements.  See the NOTICE file
5    * distributed with this work for additional information
6    * regarding copyright ownership.  The ASF licenses this file
7    * to you under the Apache License, Version 2.0 (the
8    * "License"); you may not use this file except in compliance
9    * with the License.  You may obtain a copy of the License at
10   *
11   *   http://www.apache.org/licenses/LICENSE-2.0
12   *
13   * Unless required by applicable law or agreed to in writing,
14   * software distributed under the License is distributed on an
15   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16   * KIND, either express or implied.  See the License for the
17   * specific language governing permissions and limitations
18   * under the License.
19   */
20  
21  import org.apache.archiva.redback.policy.PasswordRuleViolationException;
22  import org.apache.archiva.redback.policy.PasswordRuleViolations;
23  import org.apache.archiva.redback.rest.api.model.ErrorMessage;
24  import org.apache.archiva.redback.rest.api.model.RedbackRestError;
25  import org.springframework.stereotype.Service;
26  
27  import javax.ws.rs.core.Response;
28  import javax.ws.rs.ext.ExceptionMapper;
29  import javax.ws.rs.ext.Provider;
30  import java.util.ArrayList;
31  import java.util.List;
32  
33  /**
34   * @author Olivier Lamy
35   * @since 1.4
36   */
37  @Provider
38  @Service( "passwordRuleViolationExceptionMapper" )
39  public class PasswordRuleViolationExceptionMapper
40      implements ExceptionMapper<PasswordRuleViolationException>
41  {
42      public Response toResponse( PasswordRuleViolationException e )
43      {
44          RedbackRestError restError = new RedbackRestError();
45  
46          List<ErrorMessage> errorMessages = new ArrayList<ErrorMessage>( e.getViolations().getViolations().size() );
47          for ( PasswordRuleViolations.MessageReference messageReference : e.getViolations().getViolations() )
48          {
49              errorMessages.add( new ErrorMessage( messageReference.getKey(), messageReference.getArgs() ) );
50          }
51          restError.setErrorMessages( errorMessages );
52          Response.ResponseBuilder responseBuilder = Response.status( 500 ).entity( restError );
53          return responseBuilder.build();
54      }
55  }