Replacing simple REST return types by model objects
This commit is contained in:
parent
b4c86e98c8
commit
fdb48a6024
42
pom.xml
42
pom.xml
|
@ -582,6 +582,48 @@
|
||||||
<version>${cxf.version}</version>
|
<version>${cxf.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.swagger.core.v3</groupId>
|
||||||
|
<artifactId>swagger-core</artifactId>
|
||||||
|
<scope>compile</scope>
|
||||||
|
<version>${io.swagger.version}</version>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<groupId>javax.ws.rs</groupId>
|
||||||
|
<artifactId>jsr311-api</artifactId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.swagger.core.v3</groupId>
|
||||||
|
<artifactId>swagger-jaxrs2</artifactId>
|
||||||
|
<version>${io.swagger.version}</version>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<groupId>javax.ws.rs</groupId>
|
||||||
|
<artifactId>jsr311-api</artifactId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.swagger.core.v3</groupId>
|
||||||
|
<artifactId>swagger-annotations</artifactId>
|
||||||
|
<version>${io.swagger.version}</version>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<groupId>javax.ws.rs</groupId>
|
||||||
|
<artifactId>jsr311-api</artifactId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>jakarta.xml.bind</groupId>
|
||||||
|
<artifactId>jakarta.xml.bind-api</artifactId>
|
||||||
|
<version>2.3.3</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>javax.mail</groupId>
|
<groupId>javax.mail</groupId>
|
||||||
<artifactId>mail</artifactId>
|
<artifactId>mail</artifactId>
|
||||||
|
|
|
@ -71,8 +71,29 @@
|
||||||
<groupId>org.apache.commons</groupId>
|
<groupId>org.apache.commons</groupId>
|
||||||
<artifactId>commons-lang3</artifactId>
|
<artifactId>commons-lang3</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.rat</groupId>
|
||||||
|
<artifactId>apache-rat-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<excludes>
|
||||||
|
<exclude>target/generated</exclude>
|
||||||
|
<exclude>src/main/resources/templates/*</exclude>
|
||||||
|
<exclude>src/main/resources/openapi-codegen-ignore</exclude>
|
||||||
|
</excludes>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
The jaxb dependency is needed by the enunciate plugin starting with JDK9.
|
The jaxb dependency is needed by the enunciate plugin starting with JDK9.
|
||||||
Adding to the plugin dependency is not sufficient, so I have to add it as project dependency.
|
Adding to the plugin dependency is not sufficient, so I have to add it as project dependency.
|
||||||
|
|
|
@ -1,48 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!--
|
|
||||||
~ Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
~ or more contributor license agreements. See the NOTICE file
|
|
||||||
~ distributed with this work for additional information
|
|
||||||
~ regarding copyright ownership. The ASF licenses this file
|
|
||||||
~ to you under the Apache License, Version 2.0 (the
|
|
||||||
~ "License"); you may not use this file except in compliance
|
|
||||||
~ with the License. You may obtain a copy of the License at
|
|
||||||
~
|
|
||||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
~
|
|
||||||
~ Unless required by applicable law or agreed to in writing,
|
|
||||||
~ software distributed under the License is distributed on an
|
|
||||||
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
~ KIND, either express or implied. See the License for the
|
|
||||||
~ specific language governing permissions and limitations
|
|
||||||
~ under the License.
|
|
||||||
-->
|
|
||||||
<enunciate
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:noNamespaceSchemaLocation="http://enunciate.webcohesion.com/schemas/enunciate-2.12.0.xsd">
|
|
||||||
|
|
||||||
<title>Apache Archiva Redback REST API</title>
|
|
||||||
<modules>
|
|
||||||
<jaxrs>
|
|
||||||
<application path="redbackServices" />
|
|
||||||
</jaxrs>
|
|
||||||
|
|
||||||
<cxf disabled="false"/>
|
|
||||||
<jersey disabled="true"/>
|
|
||||||
<c disabled="true"/>
|
|
||||||
<csharp disabled="true"/>
|
|
||||||
<obj-c disabled="true"/>
|
|
||||||
<jaxws-ri disabled="true"/>
|
|
||||||
<jaxws-support disabled="true"/>
|
|
||||||
<jaxon1 disabled="true"/>
|
|
||||||
<jackson1 disabled="true"/>
|
|
||||||
<java-json-client disabled="true"/>
|
|
||||||
|
|
||||||
<docs disabled="false"
|
|
||||||
docsSubdir="" freemarkerTemplate="${project.basedir}/src/enunciate/archiva.fmt" css="${project.basedir}/src/enunciate/archiva.css">
|
|
||||||
<!-- <war docsDir="apidocs" /> -->
|
|
||||||
</docs>
|
|
||||||
|
|
||||||
</modules>
|
|
||||||
|
|
||||||
</enunciate>
|
|
|
@ -0,0 +1,76 @@
|
||||||
|
package org.apache.archiva.redback.rest.api.model;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Martin Stockhammer <martin_s@apache.org>
|
||||||
|
*/
|
||||||
|
@XmlRootElement(name = "actionStatus")
|
||||||
|
public class ActionStatus
|
||||||
|
{
|
||||||
|
private boolean success = false;
|
||||||
|
private int modifiedNumber = 0;
|
||||||
|
|
||||||
|
public static final ActionStatus SUCCESS = new ActionStatus( true );
|
||||||
|
public static final ActionStatus FAIL = new ActionStatus( false );
|
||||||
|
public static ActionStatus FROM(boolean status) {
|
||||||
|
return status ? SUCCESS : FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ActionStatus() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public ActionStatus( boolean success) {
|
||||||
|
this.success = success;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ActionStatus(boolean success, int modifiedNumber) {
|
||||||
|
this.success = success;
|
||||||
|
this.modifiedNumber = modifiedNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSuccess( )
|
||||||
|
{
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSuccess( boolean success )
|
||||||
|
{
|
||||||
|
this.success = success;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getModifiedNumber( )
|
||||||
|
{
|
||||||
|
return modifiedNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setModifiedNumber( int modifiedNumber )
|
||||||
|
{
|
||||||
|
this.modifiedNumber = modifiedNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString( )
|
||||||
|
{
|
||||||
|
return Boolean.toString( success );
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,50 @@
|
||||||
|
package org.apache.archiva.redback.rest.api.model;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import org.apache.archiva.redback.keys.AuthenticationKey;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Martin Stockhammer <martin_s@apache.org>
|
||||||
|
*/
|
||||||
|
@XmlRootElement(name = "authenticationKeyResult")
|
||||||
|
public class AuthenticationKeyResult
|
||||||
|
{
|
||||||
|
String key = "";
|
||||||
|
|
||||||
|
public AuthenticationKeyResult() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public AuthenticationKeyResult(String key) {
|
||||||
|
this.key = key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getKey( )
|
||||||
|
{
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setKey( String key )
|
||||||
|
{
|
||||||
|
this.key = key;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
package org.apache.archiva.redback.rest.api.model;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Martin Stockhammer <martin_s@apache.org>
|
||||||
|
*/
|
||||||
|
@XmlRootElement(name="availabilityStatus")
|
||||||
|
public class AvailabilityStatus
|
||||||
|
{
|
||||||
|
boolean exists = false;
|
||||||
|
|
||||||
|
public AvailabilityStatus() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public AvailabilityStatus(boolean exists) {
|
||||||
|
this.exists = exists;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isExists( )
|
||||||
|
{
|
||||||
|
return exists;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setExists( boolean exists )
|
||||||
|
{
|
||||||
|
this.exists = exists;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,45 @@
|
||||||
|
package org.apache.archiva.redback.rest.api.model;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Martin Stockhammer <martin_s@apache.org>
|
||||||
|
*/
|
||||||
|
public class PasswordStatus
|
||||||
|
{
|
||||||
|
boolean changeRequired = false;
|
||||||
|
|
||||||
|
public PasswordStatus() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public PasswordStatus(boolean changeRequired) {
|
||||||
|
this.changeRequired = changeRequired;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isChangeRequired( )
|
||||||
|
{
|
||||||
|
return changeRequired;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setChangeRequired( boolean changeRequired )
|
||||||
|
{
|
||||||
|
this.changeRequired = changeRequired;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
package org.apache.archiva.redback.rest.api.model;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Martin Stockhammer <martin_s@apache.org>
|
||||||
|
*/
|
||||||
|
@XmlRootElement(name="pingResult")
|
||||||
|
public class PingResult
|
||||||
|
{
|
||||||
|
boolean success;
|
||||||
|
|
||||||
|
public PingResult() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public PingResult( boolean success ) {
|
||||||
|
this.success = success;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSuccess( )
|
||||||
|
{
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSuccess( boolean success )
|
||||||
|
{
|
||||||
|
this.success = success;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
package org.apache.archiva.redback.rest.api.model;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Martin Stockhammer <martin_s@apache.org>
|
||||||
|
*/
|
||||||
|
@XmlRootElement(name="verificationStatus")
|
||||||
|
public class VerificationStatus
|
||||||
|
{
|
||||||
|
boolean success = false;
|
||||||
|
|
||||||
|
public VerificationStatus() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public VerificationStatus(boolean success ) {
|
||||||
|
this.success = success;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSuccess( )
|
||||||
|
{
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSuccess( boolean success )
|
||||||
|
{
|
||||||
|
this.success = success;
|
||||||
|
}
|
||||||
|
}
|
|
@ -18,8 +18,10 @@ package org.apache.archiva.redback.rest.api.services;
|
||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
||||||
import org.apache.archiva.redback.integration.security.role.RedbackRoleConstants;
|
import org.apache.archiva.redback.integration.security.role.RedbackRoleConstants;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.ActionStatus;
|
||||||
import org.apache.archiva.redback.rest.api.model.LdapGroupMapping;
|
import org.apache.archiva.redback.rest.api.model.LdapGroupMapping;
|
||||||
import org.apache.archiva.redback.rest.api.model.LdapGroupMappingUpdateRequest;
|
import org.apache.archiva.redback.rest.api.model.LdapGroupMappingUpdateRequest;
|
||||||
import org.apache.archiva.redback.rest.api.model.StringList;
|
import org.apache.archiva.redback.rest.api.model.StringList;
|
||||||
|
@ -40,6 +42,7 @@ import java.util.List;
|
||||||
* @since 2.1
|
* @since 2.1
|
||||||
*/
|
*/
|
||||||
@Path("/ldapGroupMappingService/")
|
@Path("/ldapGroupMappingService/")
|
||||||
|
@Tag( name = "LDAP", description = "LDAP Service" )
|
||||||
public interface LdapGroupMappingService
|
public interface LdapGroupMappingService
|
||||||
{
|
{
|
||||||
@Path("ldapGroups")
|
@Path("ldapGroups")
|
||||||
|
@ -61,7 +64,7 @@ public interface LdapGroupMappingService
|
||||||
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
|
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
|
||||||
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
|
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
|
||||||
@RedbackAuthorization(permissions = RedbackRoleConstants.CONFIGURATION_EDIT_OPERATION)
|
@RedbackAuthorization(permissions = RedbackRoleConstants.CONFIGURATION_EDIT_OPERATION)
|
||||||
Boolean addLdapGroupMapping( LdapGroupMapping ldapGroupMapping )
|
ActionStatus addLdapGroupMapping( LdapGroupMapping ldapGroupMapping )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
@DELETE
|
@DELETE
|
||||||
|
@ -69,14 +72,14 @@ public interface LdapGroupMappingService
|
||||||
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
|
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
|
||||||
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
|
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
|
||||||
@RedbackAuthorization(permissions = RedbackRoleConstants.CONFIGURATION_EDIT_OPERATION)
|
@RedbackAuthorization(permissions = RedbackRoleConstants.CONFIGURATION_EDIT_OPERATION)
|
||||||
Boolean removeLdapGroupMapping( @PathParam("group") String group )
|
ActionStatus removeLdapGroupMapping( @PathParam("group") String group )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
@POST
|
@POST
|
||||||
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
|
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
|
||||||
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
|
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
|
||||||
@RedbackAuthorization(permissions = RedbackRoleConstants.CONFIGURATION_EDIT_OPERATION)
|
@RedbackAuthorization(permissions = RedbackRoleConstants.CONFIGURATION_EDIT_OPERATION)
|
||||||
Boolean updateLdapGroupMapping( LdapGroupMappingUpdateRequest ldapGroupMappingUpdateRequest )
|
ActionStatus updateLdapGroupMapping( LdapGroupMappingUpdateRequest ldapGroupMappingUpdateRequest )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,11 @@ package org.apache.archiva.redback.rest.api.services;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
||||||
|
import org.apache.archiva.redback.keys.AuthenticationKey;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.ActionStatus;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.AuthenticationKeyResult;
|
||||||
import org.apache.archiva.redback.rest.api.model.LoginRequest;
|
import org.apache.archiva.redback.rest.api.model.LoginRequest;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.PingResult;
|
||||||
import org.apache.archiva.redback.rest.api.model.User;
|
import org.apache.archiva.redback.rest.api.model.User;
|
||||||
|
|
||||||
import javax.ws.rs.GET;
|
import javax.ws.rs.GET;
|
||||||
|
@ -38,9 +42,9 @@ public interface LoginService
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( noRestriction = true )
|
@RedbackAuthorization( noRestriction = true )
|
||||||
String addAuthenticationKey( @QueryParam( "providerKey" ) String providedKey,
|
AuthenticationKeyResult addAuthenticationKey( @QueryParam( "providerKey" ) String providedKey,
|
||||||
@QueryParam( "principal" ) String principal, @QueryParam( "purpose" ) String purpose,
|
@QueryParam( "principal" ) String principal, @QueryParam( "purpose" ) String purpose,
|
||||||
@QueryParam( "expirationMinutes" ) int expirationMinutes )
|
@QueryParam( "expirationMinutes" ) int expirationMinutes )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
|
|
||||||
|
@ -48,7 +52,7 @@ public interface LoginService
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( noRestriction = true )
|
@RedbackAuthorization( noRestriction = true )
|
||||||
Boolean ping()
|
PingResult ping()
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
|
|
||||||
|
@ -56,7 +60,7 @@ public interface LoginService
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( noRestriction = false, noPermission = true )
|
@RedbackAuthorization( noRestriction = false, noPermission = true )
|
||||||
Boolean pingWithAutz()
|
PingResult pingWithAutz()
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -89,6 +93,6 @@ public interface LoginService
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( noRestriction = true, noPermission = true )
|
@RedbackAuthorization( noRestriction = true, noPermission = true )
|
||||||
Boolean logout()
|
ActionStatus logout()
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,10 +20,13 @@ package org.apache.archiva.redback.rest.api.services;
|
||||||
|
|
||||||
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
||||||
import org.apache.archiva.redback.integration.security.role.RedbackRoleConstants;
|
import org.apache.archiva.redback.integration.security.role.RedbackRoleConstants;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.ActionStatus;
|
||||||
import org.apache.archiva.redback.rest.api.model.Application;
|
import org.apache.archiva.redback.rest.api.model.Application;
|
||||||
import org.apache.archiva.redback.rest.api.model.ApplicationRoles;
|
import org.apache.archiva.redback.rest.api.model.ApplicationRoles;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.AvailabilityStatus;
|
||||||
import org.apache.archiva.redback.rest.api.model.Role;
|
import org.apache.archiva.redback.rest.api.model.Role;
|
||||||
import org.apache.archiva.redback.rest.api.model.User;
|
import org.apache.archiva.redback.rest.api.model.User;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.VerificationStatus;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import javax.ws.rs.Consumes;
|
||||||
import javax.ws.rs.GET;
|
import javax.ws.rs.GET;
|
||||||
|
@ -46,8 +49,8 @@ public interface RoleManagementService
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
||||||
Boolean createTemplatedRole( @QueryParam( "templateId" ) String templateId,
|
ActionStatus createTemplatedRole( @QueryParam( "templateId" ) String templateId,
|
||||||
@QueryParam( "resource" ) String resource )
|
@QueryParam( "resource" ) String resource )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -62,7 +65,7 @@ public interface RoleManagementService
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
||||||
Boolean removeTemplatedRole( @QueryParam( "templateId" ) String templateId,
|
ActionStatus removeTemplatedRole( @QueryParam( "templateId" ) String templateId,
|
||||||
@QueryParam( "resource" ) String resource )
|
@QueryParam( "resource" ) String resource )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
|
@ -81,7 +84,7 @@ public interface RoleManagementService
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
||||||
Boolean updateRole( @QueryParam( "templateId" ) String templateId, @QueryParam( "oldResource" ) String oldResource,
|
ActionStatus updateRole( @QueryParam( "templateId" ) String templateId, @QueryParam( "oldResource" ) String oldResource,
|
||||||
@QueryParam( "newResource" ) String newResource )
|
@QueryParam( "newResource" ) String newResource )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
|
@ -96,7 +99,7 @@ public interface RoleManagementService
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
||||||
Boolean assignRole( @QueryParam( "roleId" ) String roleId, @QueryParam( "principal" ) String principal )
|
ActionStatus assignRole( @QueryParam( "roleId" ) String roleId, @QueryParam( "principal" ) String principal )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -110,7 +113,7 @@ public interface RoleManagementService
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
||||||
Boolean assignRoleByName( @QueryParam( "roleName" ) String roleName, @QueryParam( "principal" ) String principal )
|
ActionStatus assignRoleByName( @QueryParam( "roleName" ) String roleName, @QueryParam( "principal" ) String principal )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -126,7 +129,7 @@ public interface RoleManagementService
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
||||||
Boolean assignTemplatedRole( @QueryParam( "templateId" ) String templateId,
|
ActionStatus assignTemplatedRole( @QueryParam( "templateId" ) String templateId,
|
||||||
@QueryParam( "resource" ) String resource,
|
@QueryParam( "resource" ) String resource,
|
||||||
@QueryParam( "principal" ) String principal )
|
@QueryParam( "principal" ) String principal )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
@ -142,7 +145,7 @@ public interface RoleManagementService
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
||||||
Boolean unassignRole( @QueryParam( "roleId" ) String roleId, @QueryParam( "principal" ) String principal )
|
ActionStatus unassignRole( @QueryParam( "roleId" ) String roleId, @QueryParam( "principal" ) String principal )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -156,7 +159,7 @@ public interface RoleManagementService
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
||||||
Boolean unassignRoleByName( @QueryParam( "roleName" ) String roleName, @QueryParam( "principal" ) String principal )
|
ActionStatus unassignRoleByName( @QueryParam( "roleName" ) String roleName, @QueryParam( "principal" ) String principal )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -170,7 +173,7 @@ public interface RoleManagementService
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
||||||
Boolean roleExists( @QueryParam( "roleId" ) String roleId )
|
AvailabilityStatus roleExists( @QueryParam( "roleId" ) String roleId )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -185,7 +188,7 @@ public interface RoleManagementService
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
||||||
Boolean templatedRoleExists( @QueryParam( "templateId" ) String templateId,
|
AvailabilityStatus templatedRoleExists( @QueryParam( "templateId" ) String templateId,
|
||||||
@QueryParam( "resource" ) String resource )
|
@QueryParam( "resource" ) String resource )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
|
@ -201,8 +204,8 @@ public interface RoleManagementService
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
||||||
Boolean verifyTemplatedRole( @QueryParam( "templateId" ) String templateId,
|
VerificationStatus verifyTemplatedRole( @QueryParam( "templateId" ) String templateId,
|
||||||
@QueryParam( "resource" ) String resource )
|
@QueryParam( "resource" ) String resource )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -265,7 +268,7 @@ public interface RoleManagementService
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
||||||
Boolean updateRoleDescription( @QueryParam( "roleName" ) String roleName,
|
ActionStatus updateRoleDescription( @QueryParam( "roleName" ) String roleName,
|
||||||
@QueryParam( "roleDescription" ) String description )
|
@QueryParam( "roleDescription" ) String description )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
|
@ -278,7 +281,7 @@ public interface RoleManagementService
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
|
||||||
@Consumes( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
|
@Consumes( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
|
||||||
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
||||||
Boolean updateRoleUsers( Role role )
|
ActionStatus updateRoleUsers( Role role )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -300,7 +303,7 @@ public interface RoleManagementService
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
|
||||||
@Consumes( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
|
@Consumes( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
|
||||||
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
|
||||||
Boolean updateUserRoles( User user )
|
ActionStatus updateUserRoles( User user )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,13 +21,19 @@ package org.apache.archiva.redback.rest.api.services;
|
||||||
|
|
||||||
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
||||||
import org.apache.archiva.redback.integration.security.role.RedbackRoleConstants;
|
import org.apache.archiva.redback.integration.security.role.RedbackRoleConstants;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.ActionStatus;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.AvailabilityStatus;
|
||||||
import org.apache.archiva.redback.rest.api.model.Operation;
|
import org.apache.archiva.redback.rest.api.model.Operation;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.PasswordStatus;
|
||||||
import org.apache.archiva.redback.rest.api.model.Permission;
|
import org.apache.archiva.redback.rest.api.model.Permission;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.PingResult;
|
||||||
import org.apache.archiva.redback.rest.api.model.RegistrationKey;
|
import org.apache.archiva.redback.rest.api.model.RegistrationKey;
|
||||||
import org.apache.archiva.redback.rest.api.model.ResetPasswordRequest;
|
import org.apache.archiva.redback.rest.api.model.ResetPasswordRequest;
|
||||||
import org.apache.archiva.redback.rest.api.model.User;
|
import org.apache.archiva.redback.rest.api.model.User;
|
||||||
import org.apache.archiva.redback.rest.api.model.UserRegistrationRequest;
|
import org.apache.archiva.redback.rest.api.model.UserRegistrationRequest;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.VerificationStatus;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
import javax.ws.rs.Consumes;
|
import javax.ws.rs.Consumes;
|
||||||
import javax.ws.rs.GET;
|
import javax.ws.rs.GET;
|
||||||
import javax.ws.rs.POST;
|
import javax.ws.rs.POST;
|
||||||
|
@ -61,7 +67,7 @@ public interface UserService
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@Consumes( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
|
@Consumes( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
|
||||||
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_CREATE_OPERATION )
|
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_CREATE_OPERATION )
|
||||||
Boolean createUser( User user )
|
ActionStatus createUser( User user )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
|
|
||||||
|
@ -73,14 +79,14 @@ public interface UserService
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@Consumes( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
|
@Consumes( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
|
||||||
@RedbackAuthorization( noRestriction = true )
|
@RedbackAuthorization( noRestriction = true )
|
||||||
Boolean createAdminUser( User user )
|
ActionStatus createAdminUser( User user )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
@Path( "isAdminUserExists" )
|
@Path( "isAdminUserExists" )
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( noRestriction = true )
|
@RedbackAuthorization( noRestriction = true )
|
||||||
Boolean isAdminUserExists()
|
AvailabilityStatus isAdminUserExists()
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
|
|
||||||
|
@ -88,14 +94,14 @@ public interface UserService
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_DELETE_OPERATION )
|
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_DELETE_OPERATION )
|
||||||
Boolean deleteUser( @PathParam( "userName" ) String username )
|
ActionStatus deleteUser( @PathParam( "userName" ) String username )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
@Path( "updateUser" )
|
@Path( "updateUser" )
|
||||||
@POST
|
@POST
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION )
|
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION )
|
||||||
Boolean updateUser( User user )
|
ActionStatus updateUser( User user )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -105,7 +111,7 @@ public interface UserService
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION )
|
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION )
|
||||||
Boolean lockUser( @PathParam( "username" ) String username )
|
ActionStatus lockUser( @PathParam( "username" ) String username )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -115,7 +121,7 @@ public interface UserService
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION )
|
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION )
|
||||||
Boolean unlockUser( @PathParam( "username" ) String username )
|
ActionStatus unlockUser( @PathParam( "username" ) String username )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
|
|
||||||
|
@ -126,20 +132,9 @@ public interface UserService
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION )
|
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION )
|
||||||
Boolean passwordChangeRequired( @PathParam( "username" ) String username )
|
PasswordStatus passwordChangeRequired( @PathParam( "username" ) String username )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
/**
|
|
||||||
* @since 2.0
|
|
||||||
*/
|
|
||||||
@Path( "passwordChangeNotRequired/{username}" )
|
|
||||||
@GET
|
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
|
||||||
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION )
|
|
||||||
Boolean passwordChangeNotRequired( @PathParam( "username" ) String username )
|
|
||||||
throws RedbackServiceException;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* update only the current user and this fields: fullname, email, password.
|
* update only the current user and this fields: fullname, email, password.
|
||||||
* the service verify the curent logged user with the one passed in the method
|
* the service verify the curent logged user with the one passed in the method
|
||||||
|
@ -149,21 +144,21 @@ public interface UserService
|
||||||
@POST
|
@POST
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( noRestriction = false, noPermission = true )
|
@RedbackAuthorization( noRestriction = false, noPermission = true )
|
||||||
Boolean updateMe( User user )
|
ActionStatus updateMe( User user )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
@Path( "ping" )
|
@Path( "ping" )
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( noRestriction = true )
|
@RedbackAuthorization( noRestriction = true )
|
||||||
Boolean ping()
|
PingResult ping()
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
@Path( "removeFromCache/{userName}" )
|
@Path( "removeFromCache/{userName}" )
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION )
|
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION )
|
||||||
int removeFromCache( @PathParam( "userName" ) String username )
|
ActionStatus removeFromCache( @PathParam( "userName" ) String username )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
@Path( "getGuestUser" )
|
@Path( "getGuestUser" )
|
||||||
|
@ -202,7 +197,7 @@ public interface UserService
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@RedbackAuthorization( noRestriction = true, noPermission = true )
|
@RedbackAuthorization( noRestriction = true, noPermission = true )
|
||||||
Boolean validateUserFromKey( @PathParam( "key" ) String key )
|
VerificationStatus validateUserFromKey( @PathParam( "key" ) String key )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -215,7 +210,7 @@ public interface UserService
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||||
@Consumes( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
|
@Consumes( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
|
||||||
@RedbackAuthorization( noRestriction = true, noPermission = true )
|
@RedbackAuthorization( noRestriction = true, noPermission = true )
|
||||||
Boolean resetPassword( ResetPasswordRequest resetPasswordRequest )
|
ActionStatus resetPassword( ResetPasswordRequest resetPasswordRequest )
|
||||||
throws RedbackServiceException;
|
throws RedbackServiceException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
resourcePackages:
|
||||||
|
- org.apache.archiva.redback.rest.api
|
||||||
|
prettyPrint: true
|
||||||
|
cacheTTL: 0
|
||||||
|
openAPI:
|
||||||
|
info:
|
||||||
|
version: '3.0'
|
||||||
|
title: Apache Archiva Redback REST API
|
||||||
|
description: 'This is the Apache Archiva Redback REST API documentation'
|
||||||
|
termsOfService: https://archiva.apache.org
|
||||||
|
contact:
|
||||||
|
email: dev@archiva.apache.org
|
||||||
|
url: https://archiva.apache.org/index.html
|
||||||
|
license:
|
||||||
|
name: Apache 2.0
|
||||||
|
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
|
@ -0,0 +1,4 @@
|
||||||
|
{{#is this 'body-param'}}<div class="param">{{baseName}} {{#baseType}}<a href="#{{baseType}}">{{baseType}}</a>{{/baseType}} {{^required}}(optional){{/required}}{{#required}}(required){{/required}}</div>
|
||||||
|
|
||||||
|
<div class="param-desc"><span class="param-type">Body Parameter</span> — {{unescapedDescription}} {{#defaultValue}}default: {{{defaultValue}}}{{/defaultValue}}</div>{{/is}}
|
||||||
|
{{#example}}<div class="param-desc"><span class="param-type">example: <code>{{example}}</code></span></div>{{/example}}
|
|
@ -0,0 +1,3 @@
|
||||||
|
{{#is this 'form-param'}}<div class="param">{{baseName}} {{^required}}(optional){{/required}}{{#required}}(required){{/required}}</div>
|
||||||
|
|
||||||
|
<div class="param-desc"><span class="param-type">Form Parameter</span> — {{unescapedDescription}} {{#defaultValue}}default: {{{defaultValue}}} {{/defaultValue}}{{#dataFormat}}format: {{{dataFormat}}}{{/dataFormat}}</div>{{/is}}
|
|
@ -0,0 +1,3 @@
|
||||||
|
{{#is this 'header-param'}}<div class="param">{{baseName}} {{^required}}(optional){{/required}}{{#required}}(required){{/required}}</div>
|
||||||
|
|
||||||
|
<div class="param-desc"><span class="param-type">Header Parameter</span> — {{unescapedDescription}} {{#defaultValue}}default: {{{defaultValue}}} {{/defaultValue}}{{#dataFormat}}format: {{{dataFormat}}}{{/dataFormat}}</div>{{/is}}
|
|
@ -0,0 +1,213 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>{{{appName}}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
{{>style.css}}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>{{{appName}}}</h1>
|
||||||
|
<div class="app-desc">{{{appDescription}}}</div>
|
||||||
|
{{#infoUrl}}<div class="app-desc">More information: <a href="{{{infoUrl}}}">{{{infoUrl}}}</a></div>{{/infoUrl}}
|
||||||
|
{{#infoEmail}}<div class="app-desc">Contact Info: <a href="{{{infoEmail}}}">{{{infoEmail}}}</a></div>{{/infoEmail}}
|
||||||
|
{{#version}}<div class="app-desc">Version: {{{version}}}</div>{{/version}}
|
||||||
|
{{#basePathWithoutHost}}<div class="app-desc">BasePath:{{basePathWithoutHost}}</div>{{/basePathWithoutHost}}
|
||||||
|
<div class="license-info">{{{licenseInfo}}}</div>
|
||||||
|
<div class="license-url">{{{licenseUrl}}}</div>
|
||||||
|
<h2>Access</h2>
|
||||||
|
{{#hasAuthMethods}}
|
||||||
|
<ol>
|
||||||
|
{{#authMethods}}
|
||||||
|
<li>{{#is this 'basic'}}HTTP Basic Authentication{{/is}}{{#is this 'oauth'}}OAuth AuthorizationUrl:{{authorizationUrl}}TokenUrl:{{tokenUrl}}{{/is}}{{#is this 'api-key'}}APIKey KeyParamName:{{keyParamName}} KeyInQuery:{{isKeyInQuery}} KeyInHeader:{{isKeyInHeader}}{{/is}}</li>
|
||||||
|
{{/authMethods}}
|
||||||
|
</ol>
|
||||||
|
{{/hasAuthMethods}}
|
||||||
|
|
||||||
|
<h2><a name="__Methods">Methods</a></h2>
|
||||||
|
[ Jump to <a href="#__Models">Models</a> ]
|
||||||
|
|
||||||
|
{{! for the tables of content, I cheat and don't use CSS styles.... }}
|
||||||
|
<h3>Table of Contents </h3>
|
||||||
|
<div class="method-summary">{{access}}</div>
|
||||||
|
{{#apiInfo}}
|
||||||
|
{{#apis}}
|
||||||
|
{{#operations}}
|
||||||
|
<h4><a href="#{{baseName}}">{{baseName}}</a></h4>
|
||||||
|
<ul>
|
||||||
|
{{#operation}}
|
||||||
|
<li><a href="#{{nickname}}"><code><span class="http-method">{{httpMethod}}</span> {{path}}</code></a></li>
|
||||||
|
{{/operation}}
|
||||||
|
</ul>
|
||||||
|
{{/operations}}
|
||||||
|
{{/apis}}
|
||||||
|
{{/apiInfo}}
|
||||||
|
|
||||||
|
{{#apiInfo}}
|
||||||
|
{{#apis}}
|
||||||
|
{{#operations}}
|
||||||
|
<h1><a name="{{baseName}}">{{baseName}}</a></h1>
|
||||||
|
{{#operation}}
|
||||||
|
<div class="method"><a name="{{nickname}}"></a>
|
||||||
|
<div class="method-path">
|
||||||
|
<a class="up" href="#__Methods">Up</a>
|
||||||
|
<pre class="{{httpMethod}}"><code class="huge"><span class="http-method">{{httpMethod}}</span> {{path}}</code></pre></div>
|
||||||
|
<div class="method-summary">{{summary}} (<span class="nickname">{{nickname}}</span>)</div>
|
||||||
|
{{! notes is operation.description. So why rename it and make it super confusing???? }}
|
||||||
|
<div class="method-notes">{{notes}}</div>
|
||||||
|
|
||||||
|
{{#hasPathParams}}
|
||||||
|
<h3 class="field-label">Path parameters</h3>
|
||||||
|
<div class="field-items">
|
||||||
|
{{#pathParams}}{{>pathParam}}{{/pathParams}}
|
||||||
|
</div> <!-- field-items -->
|
||||||
|
{{/hasPathParams}}
|
||||||
|
|
||||||
|
{{#has this 'consumes'}}
|
||||||
|
<h3 class="field-label">Consumes</h3>
|
||||||
|
This API call consumes the following media types via the <span class="header">Content-Type</span> request header:
|
||||||
|
<ul>
|
||||||
|
{{#consumes}}
|
||||||
|
<li><code>{{{mediaType}}}</code></li>
|
||||||
|
{{/consumes}}
|
||||||
|
</ul>
|
||||||
|
{{/has}}
|
||||||
|
|
||||||
|
{{#hasBodyParam}}
|
||||||
|
<h3 class="field-label">Request body</h3>
|
||||||
|
<div class="field-items">
|
||||||
|
{{#bodyParams}}{{>bodyParam}}{{/bodyParams}}
|
||||||
|
</div> <!-- field-items -->
|
||||||
|
{{/hasBodyParam}}
|
||||||
|
|
||||||
|
{{#hasHeaderParams}}
|
||||||
|
<h3 class="field-label">Request headers</h3>
|
||||||
|
<div class="field-items">
|
||||||
|
{{#headerParam}}{{>headerParam}}{{/headerParam}}
|
||||||
|
</div> <!-- field-items -->
|
||||||
|
{{/hasHeaderParams}}
|
||||||
|
|
||||||
|
{{#hasQueryParams}}
|
||||||
|
<h3 class="field-label">Query parameters</h3>
|
||||||
|
<div class="field-items">
|
||||||
|
{{#queryParams}}{{>queryParam}}{{/queryParams}}
|
||||||
|
</div> <!-- field-items -->
|
||||||
|
{{/hasQueryParams}}
|
||||||
|
|
||||||
|
{{#hasFormParams}}
|
||||||
|
<h3 class="field-label">Form parameters</h3>
|
||||||
|
<div class="field-items">
|
||||||
|
{{#formParams}}{{>formParam}}{{/formParams}}
|
||||||
|
</div> <!-- field-items -->
|
||||||
|
{{/hasFormParams}}
|
||||||
|
|
||||||
|
{{#returnType}}
|
||||||
|
<h3 class="field-label">Return type</h3>
|
||||||
|
<div class="return-type">
|
||||||
|
{{#hasReference}}{{^returnSimpleType}}{{returnContainer}}[{{/returnSimpleType}}<a href="#{{returnBaseType}}">{{returnBaseType}}</a>{{^returnSimpleType}}]{{/returnSimpleType}}{{/hasReference}}
|
||||||
|
{{^hasReference}}{{returnType}}{{/hasReference}}
|
||||||
|
</div>
|
||||||
|
{{/returnType}}
|
||||||
|
|
||||||
|
<!--Todo: process Response Object and its headers, schema, examples -->
|
||||||
|
|
||||||
|
{{#hasExamples}}
|
||||||
|
{{#examples}}
|
||||||
|
<h3 class="field-label">Example data</h3>
|
||||||
|
<div class="example-data-content-type">Content-Type: {{{contentType}}}</div>
|
||||||
|
<pre class="example"><code>{{{example}}}</code></pre>
|
||||||
|
{{/examples}}
|
||||||
|
{{/hasExamples}}
|
||||||
|
|
||||||
|
{{#has this 'produces'}}
|
||||||
|
<h3 class="field-label">Produces</h3>
|
||||||
|
This API call produces the following media types according to the <span class="header">Accept</span> request header;
|
||||||
|
the media type will be conveyed by the <span class="header">Content-Type</span> response header.
|
||||||
|
<ul>
|
||||||
|
{{#produces}}
|
||||||
|
<li><code>{{{mediaType}}}</code></li>
|
||||||
|
{{/produces}}
|
||||||
|
</ul>
|
||||||
|
{{/has}}
|
||||||
|
|
||||||
|
<h3 class="field-label">Responses</h3>
|
||||||
|
{{#responses}}
|
||||||
|
<h4 class="field-label">{{code}}</h4>
|
||||||
|
{{message}}
|
||||||
|
{{#simpleType}}<a href="#{{dataType}}">{{dataType}}</a>{{/simpleType}}
|
||||||
|
{{#examples}}
|
||||||
|
<h3 class="field-label">Example data</h3>
|
||||||
|
<div class="example-data-content-type">Content-Type: {{{contentType}}}</div>
|
||||||
|
<pre class="example"><code>{{example}}</code></pre>
|
||||||
|
{{/examples}}
|
||||||
|
{{/responses}}
|
||||||
|
</div> <!-- method -->
|
||||||
|
<hr/>
|
||||||
|
{{/operation}}
|
||||||
|
{{/operations}}
|
||||||
|
{{/apis}}
|
||||||
|
{{/apiInfo}}
|
||||||
|
|
||||||
|
<h2><a name="__Models">Models</a></h2>
|
||||||
|
[ Jump to <a href="#__Methods">Methods</a> ]
|
||||||
|
|
||||||
|
<h3>Table of Contents</h3>
|
||||||
|
<ol>
|
||||||
|
{{#models}}
|
||||||
|
{{#model}}
|
||||||
|
<li><a href="#{{name}}"><code>{{name}}</code>{{#title}} - {{title}}{{/title}}</a></li>
|
||||||
|
{{/model}}
|
||||||
|
{{/models}}
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
{{#models}}
|
||||||
|
{{#model}}
|
||||||
|
<div class="model">
|
||||||
|
<h3><a name="{{name}}"><code>{{name}}</code>{{#title}} - {{title}}{{/title}}</a> <a class="up" href="#__Models">Up</a></h3>
|
||||||
|
{{#unescapedDescription}}<div class='model-description'>{{unescapedDescription}}</div>{{/unescapedDescription}}
|
||||||
|
<div class="field-items">
|
||||||
|
{{#vars}}<div class="param">{{name}} {{^required}}(optional){{/required}}</div><div class="param-desc"><span class="param-type">{{#isNot this 'primitive-type'}}<a href="#{{complexType}}">{{datatype}}</a>{{/isNot}}</span> {{unescapedDescription}} {{#dataFormat}}format: {{{dataFormat}}}{{/dataFormat}}</div>
|
||||||
|
{{#is this 'enum'}}
|
||||||
|
<div class="param-enum-header">Enum:</div>
|
||||||
|
{{#_enum}}<div class="param-enum">{{this}}</div>{{/_enum}}
|
||||||
|
{{/is}}
|
||||||
|
{{#example}}
|
||||||
|
<div class="param-desc"><span class="param-type">example: {{example}}</span></div>
|
||||||
|
{{/example}}
|
||||||
|
{{#vendorExtensions.oneOf-model}}
|
||||||
|
<div class="param-desc"><span class="param-type">oneOf:</span>
|
||||||
|
{{#vendorExtensions.x-model-names}}
|
||||||
|
<a href="#{{this}}"><code>{{this}}</code></a>
|
||||||
|
{{/vendorExtensions.x-model-names}}
|
||||||
|
</div>
|
||||||
|
{{/vendorExtensions.oneOf-model}}
|
||||||
|
{{#vendorExtensions.anyOf-model}}
|
||||||
|
<div class="param-desc"><span class="param-type">anyOf:</span>
|
||||||
|
{{#vendorExtensions.x-model-names}}
|
||||||
|
<a href="#{{this}}"><code>{{this}}</code></a>
|
||||||
|
{{/vendorExtensions.x-model-names}}
|
||||||
|
</div>
|
||||||
|
{{/vendorExtensions.anyOf-model}}
|
||||||
|
{{#items}}
|
||||||
|
{{#vendorExtensions.oneOf-model}}
|
||||||
|
<div class="param-desc"><span class="param-type">items oneOf:</span>
|
||||||
|
{{#vendorExtensions.x-model-names}}
|
||||||
|
<a href="#{{this}}"><code>{{this}}</code></a>
|
||||||
|
{{/vendorExtensions.x-model-names}}
|
||||||
|
</div>
|
||||||
|
{{/vendorExtensions.oneOf-model}}
|
||||||
|
{{#vendorExtensions.anyOf-model}}
|
||||||
|
<div class="param-desc"><span class="param-type">items anyOf:</span>
|
||||||
|
{{#vendorExtensions.x-model-names}}
|
||||||
|
<a href="#{{this}}"><code>{{this}}</code></a>
|
||||||
|
{{/vendorExtensions.x-model-names}}
|
||||||
|
</div>
|
||||||
|
{{/vendorExtensions.anyOf-model}}
|
||||||
|
{{/items}}
|
||||||
|
{{/vars}}
|
||||||
|
</div> <!-- field-items -->
|
||||||
|
</div>
|
||||||
|
{{/model}}
|
||||||
|
{{/models}}
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,3 @@
|
||||||
|
{{#is this 'path-param'}}<div class="param">{{baseName}} {{^required}}(optional){{/required}}{{#required}}(required){{/required}}</div>
|
||||||
|
|
||||||
|
<div class="param-desc"><span class="param-type">Path Parameter</span> — {{unescapedDescription}} {{#defaultValue}}default: {{{defaultValue}}} {{/defaultValue}}{{#dataFormat}}format: {{{dataFormat}}}{{/dataFormat}}</div>{{/is}}
|
|
@ -0,0 +1,3 @@
|
||||||
|
{{#is this 'query-param'}}<div class="param">{{baseName}} {{^required}}(optional){{/required}}{{#required}}(required){{/required}}</div>
|
||||||
|
|
||||||
|
<div class="param-desc"><span class="param-type">Query Parameter</span> — {{unescapedDescription}} {{#defaultValue}}default: {{{defaultValue}}} {{/defaultValue}}{{#dataFormat}}format: {{{dataFormat}}}{{/dataFormat}}</div>{{/is}}
|
|
@ -0,0 +1,172 @@
|
||||||
|
body {
|
||||||
|
font-family: Trebuchet MS, sans-serif;
|
||||||
|
font-size: 15px;
|
||||||
|
color: #444;
|
||||||
|
margin-right: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 25px;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
h3 {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
hr {
|
||||||
|
height: 1px;
|
||||||
|
border: 0;
|
||||||
|
color: #ddd;
|
||||||
|
background-color: #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-desc {
|
||||||
|
clear: both;
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
.param-name {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.license-info {
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.license-url {
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.model {
|
||||||
|
margin: 0 0 0px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.method {
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.method-notes {
|
||||||
|
margin: 10px 0 20px 0;
|
||||||
|
font-size: 90%;
|
||||||
|
color: #555;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
padding: 10px;
|
||||||
|
margin-bottom: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.http-method {
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre.get {
|
||||||
|
background-color: #0f6ab4;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre.post {
|
||||||
|
background-color: #10a54a;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre.put {
|
||||||
|
background-color: #c5862b;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre.delete {
|
||||||
|
background-color: #a41e22;
|
||||||
|
}
|
||||||
|
|
||||||
|
.huge {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre.example {
|
||||||
|
background-color: #f3f3f3;
|
||||||
|
padding: 10px;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
white-space: pre;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nickname {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.method-path {
|
||||||
|
font-size: 1.5em;
|
||||||
|
background-color: #0f6ab4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.up {
|
||||||
|
float:right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.parameter {
|
||||||
|
width: 500px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.param {
|
||||||
|
width: 500px;
|
||||||
|
padding: 10px 0 0 20px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.param-desc {
|
||||||
|
width: 700px;
|
||||||
|
padding: 0 0 0 20px;
|
||||||
|
color: #777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.param-type {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.param-enum-header {
|
||||||
|
width: 700px;
|
||||||
|
padding: 0 0 0 60px;
|
||||||
|
color: #777;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.param-enum {
|
||||||
|
width: 700px;
|
||||||
|
padding: 0 0 0 80px;
|
||||||
|
color: #777;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.field-label {
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.field-items {
|
||||||
|
padding: 0 0 15px 0;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.return-type {
|
||||||
|
clear: both;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.param-header {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.method-tags {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.method-tag {
|
||||||
|
background: none repeat scroll 0% 0% #24A600;
|
||||||
|
border-radius: 3px;
|
||||||
|
padding: 2px 10px;
|
||||||
|
margin: 2px;
|
||||||
|
color: #FFF;
|
||||||
|
display: inline-block;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
|
@ -186,6 +186,11 @@
|
||||||
<artifactId>jackson-jaxrs-xml-provider</artifactId>
|
<artifactId>jackson-jaxrs-xml-provider</artifactId>
|
||||||
<scope>runtime</scope>
|
<scope>runtime</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
||||||
|
<artifactId>jackson-dataformat-xml</artifactId>
|
||||||
|
<version>${jackson.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.cxf</groupId>
|
<groupId>org.apache.cxf</groupId>
|
||||||
|
@ -327,6 +332,15 @@
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.rat</groupId>
|
||||||
|
<artifactId>apache-rat-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<excludes>
|
||||||
|
<exclude>src/main/resources/META-INF/cxf/org.apache.cxf.Logger</exclude>
|
||||||
|
</excludes>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-surefire-plugin</artifactId>
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
|
|
|
@ -24,6 +24,7 @@ import org.apache.archiva.redback.common.ldap.connection.LdapConnectionFactory;
|
||||||
import org.apache.archiva.redback.common.ldap.connection.LdapException;
|
import org.apache.archiva.redback.common.ldap.connection.LdapException;
|
||||||
import org.apache.archiva.redback.common.ldap.role.LdapRoleMapper;
|
import org.apache.archiva.redback.common.ldap.role.LdapRoleMapper;
|
||||||
import org.apache.archiva.redback.common.ldap.role.LdapRoleMapperConfiguration;
|
import org.apache.archiva.redback.common.ldap.role.LdapRoleMapperConfiguration;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.ActionStatus;
|
||||||
import org.apache.archiva.redback.rest.api.model.LdapGroupMapping;
|
import org.apache.archiva.redback.rest.api.model.LdapGroupMapping;
|
||||||
import org.apache.archiva.redback.rest.api.model.LdapGroupMappingUpdateRequest;
|
import org.apache.archiva.redback.rest.api.model.LdapGroupMappingUpdateRequest;
|
||||||
import org.apache.archiva.redback.rest.api.model.StringList;
|
import org.apache.archiva.redback.rest.api.model.StringList;
|
||||||
|
@ -111,7 +112,7 @@ public class DefaultLdapGroupMappingService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean addLdapGroupMapping( LdapGroupMapping ldapGroupMapping )
|
public ActionStatus addLdapGroupMapping( LdapGroupMapping ldapGroupMapping )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -124,10 +125,10 @@ public class DefaultLdapGroupMappingService
|
||||||
log.error( e.getMessage(), e );
|
log.error( e.getMessage(), e );
|
||||||
throw new RedbackServiceException( e.getMessage() );
|
throw new RedbackServiceException( e.getMessage() );
|
||||||
}
|
}
|
||||||
return Boolean.TRUE;
|
return ActionStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean removeLdapGroupMapping( String group )
|
public ActionStatus removeLdapGroupMapping( String group )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -139,10 +140,10 @@ public class DefaultLdapGroupMappingService
|
||||||
log.error( e.getMessage(), e );
|
log.error( e.getMessage(), e );
|
||||||
throw new RedbackServiceException( e.getMessage() );
|
throw new RedbackServiceException( e.getMessage() );
|
||||||
}
|
}
|
||||||
return Boolean.TRUE;
|
return ActionStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean updateLdapGroupMapping( LdapGroupMappingUpdateRequest ldapGroupMappingUpdateRequest )
|
public ActionStatus updateLdapGroupMapping( LdapGroupMappingUpdateRequest ldapGroupMappingUpdateRequest )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -158,7 +159,7 @@ public class DefaultLdapGroupMappingService
|
||||||
log.error( e.getMessage(), e );
|
log.error( e.getMessage(), e );
|
||||||
throw new RedbackServiceException( e.getMessage() );
|
throw new RedbackServiceException( e.getMessage() );
|
||||||
}
|
}
|
||||||
return Boolean.TRUE;
|
return ActionStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------
|
//------------------
|
||||||
|
|
|
@ -32,8 +32,11 @@ import org.apache.archiva.redback.keys.memory.MemoryAuthenticationKey;
|
||||||
import org.apache.archiva.redback.keys.memory.MemoryKeyManager;
|
import org.apache.archiva.redback.keys.memory.MemoryKeyManager;
|
||||||
import org.apache.archiva.redback.policy.AccountLockedException;
|
import org.apache.archiva.redback.policy.AccountLockedException;
|
||||||
import org.apache.archiva.redback.policy.MustChangePasswordException;
|
import org.apache.archiva.redback.policy.MustChangePasswordException;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.ActionStatus;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.AuthenticationKeyResult;
|
||||||
import org.apache.archiva.redback.rest.api.model.ErrorMessage;
|
import org.apache.archiva.redback.rest.api.model.ErrorMessage;
|
||||||
import org.apache.archiva.redback.rest.api.model.LoginRequest;
|
import org.apache.archiva.redback.rest.api.model.LoginRequest;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.PingResult;
|
||||||
import org.apache.archiva.redback.rest.api.model.User;
|
import org.apache.archiva.redback.rest.api.model.User;
|
||||||
import org.apache.archiva.redback.rest.api.services.LoginService;
|
import org.apache.archiva.redback.rest.api.services.LoginService;
|
||||||
import org.apache.archiva.redback.rest.api.services.RedbackServiceException;
|
import org.apache.archiva.redback.rest.api.services.RedbackServiceException;
|
||||||
|
@ -87,7 +90,7 @@ public class DefaultLoginService
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public String addAuthenticationKey( String providedKey, String principal, String purpose, int expirationMinutes )
|
public AuthenticationKeyResult addAuthenticationKey( String providedKey, String principal, String purpose, int expirationMinutes )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
KeyManager keyManager = securitySystem.getKeyManager();
|
KeyManager keyManager = securitySystem.getKeyManager();
|
||||||
|
@ -118,19 +121,19 @@ public class DefaultLoginService
|
||||||
|
|
||||||
keyManager.addKey( key );
|
keyManager.addKey( key );
|
||||||
|
|
||||||
return key.getKey();
|
return new AuthenticationKeyResult( key.getKey( ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean ping()
|
public PingResult ping()
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
return Boolean.TRUE;
|
return new PingResult( true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean pingWithAutz()
|
public PingResult pingWithAutz()
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
return Boolean.TRUE;
|
return new PingResult( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
public User logIn( LoginRequest loginRequest )
|
public User logIn( LoginRequest loginRequest )
|
||||||
|
@ -220,7 +223,7 @@ public class DefaultLoginService
|
||||||
return isLogged && securitySession.getUser() != null ? buildRestUser( securitySession.getUser() ) : null;
|
return isLogged && securitySession.getUser() != null ? buildRestUser( securitySession.getUser() ) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean logout()
|
public ActionStatus logout()
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
HttpSession httpSession = httpServletRequest.getSession();
|
HttpSession httpSession = httpServletRequest.getSession();
|
||||||
|
@ -228,7 +231,7 @@ public class DefaultLoginService
|
||||||
{
|
{
|
||||||
httpSession.invalidate();
|
httpSession.invalidate();
|
||||||
}
|
}
|
||||||
return Boolean.TRUE;
|
return ActionStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Calendar getNowGMT()
|
private Calendar getNowGMT()
|
||||||
|
|
|
@ -26,11 +26,14 @@ import org.apache.archiva.redback.rbac.RBACManager;
|
||||||
import org.apache.archiva.redback.rbac.RbacManagerException;
|
import org.apache.archiva.redback.rbac.RbacManagerException;
|
||||||
import org.apache.archiva.redback.rbac.Resource;
|
import org.apache.archiva.redback.rbac.Resource;
|
||||||
import org.apache.archiva.redback.rbac.UserAssignment;
|
import org.apache.archiva.redback.rbac.UserAssignment;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.ActionStatus;
|
||||||
import org.apache.archiva.redback.rest.api.model.Application;
|
import org.apache.archiva.redback.rest.api.model.Application;
|
||||||
import org.apache.archiva.redback.rest.api.model.ApplicationRoles;
|
import org.apache.archiva.redback.rest.api.model.ApplicationRoles;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.AvailabilityStatus;
|
||||||
import org.apache.archiva.redback.rest.api.model.ErrorMessage;
|
import org.apache.archiva.redback.rest.api.model.ErrorMessage;
|
||||||
import org.apache.archiva.redback.rest.api.model.Role;
|
import org.apache.archiva.redback.rest.api.model.Role;
|
||||||
import org.apache.archiva.redback.rest.api.model.RoleTemplate;
|
import org.apache.archiva.redback.rest.api.model.RoleTemplate;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.VerificationStatus;
|
||||||
import org.apache.archiva.redback.rest.api.services.RedbackServiceException;
|
import org.apache.archiva.redback.rest.api.services.RedbackServiceException;
|
||||||
import org.apache.archiva.redback.rest.api.services.RoleManagementService;
|
import org.apache.archiva.redback.rest.api.services.RoleManagementService;
|
||||||
import org.apache.archiva.redback.role.RoleManager;
|
import org.apache.archiva.redback.role.RoleManager;
|
||||||
|
@ -90,7 +93,7 @@ public class DefaultRoleManagementService
|
||||||
log.debug( "use userManager impl: {}", userManager.getClass().getName() );
|
log.debug( "use userManager impl: {}", userManager.getClass().getName() );
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean createTemplatedRole( String templateId, String resource )
|
public ActionStatus createTemplatedRole( String templateId, String resource )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -101,10 +104,10 @@ public class DefaultRoleManagementService
|
||||||
{
|
{
|
||||||
throw new RedbackServiceException( e.getMessage() );
|
throw new RedbackServiceException( e.getMessage() );
|
||||||
}
|
}
|
||||||
return Boolean.TRUE;
|
return ActionStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean removeTemplatedRole( String templateId, String resource )
|
public ActionStatus removeTemplatedRole( String templateId, String resource )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -116,10 +119,10 @@ public class DefaultRoleManagementService
|
||||||
{
|
{
|
||||||
throw new RedbackServiceException( e.getMessage() );
|
throw new RedbackServiceException( e.getMessage() );
|
||||||
}
|
}
|
||||||
return Boolean.TRUE;
|
return ActionStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean updateRole( String templateId, String oldResource, String newResource )
|
public ActionStatus updateRole( String templateId, String oldResource, String newResource )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -130,10 +133,10 @@ public class DefaultRoleManagementService
|
||||||
{
|
{
|
||||||
throw new RedbackServiceException( e.getMessage() );
|
throw new RedbackServiceException( e.getMessage() );
|
||||||
}
|
}
|
||||||
return Boolean.TRUE;
|
return ActionStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean assignRole( String roleId, String principal )
|
public ActionStatus assignRole( String roleId, String principal )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -144,10 +147,10 @@ public class DefaultRoleManagementService
|
||||||
{
|
{
|
||||||
throw new RedbackServiceException( e.getMessage() );
|
throw new RedbackServiceException( e.getMessage() );
|
||||||
}
|
}
|
||||||
return Boolean.TRUE;
|
return ActionStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean assignRoleByName( String roleName, String principal )
|
public ActionStatus assignRoleByName( String roleName, String principal )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -158,10 +161,10 @@ public class DefaultRoleManagementService
|
||||||
{
|
{
|
||||||
throw new RedbackServiceException( e.getMessage() );
|
throw new RedbackServiceException( e.getMessage() );
|
||||||
}
|
}
|
||||||
return Boolean.TRUE;
|
return ActionStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean assignTemplatedRole( String templateId, String resource, String principal )
|
public ActionStatus assignTemplatedRole( String templateId, String resource, String principal )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -172,10 +175,10 @@ public class DefaultRoleManagementService
|
||||||
{
|
{
|
||||||
throw new RedbackServiceException( e.getMessage() );
|
throw new RedbackServiceException( e.getMessage() );
|
||||||
}
|
}
|
||||||
return Boolean.TRUE;
|
return ActionStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean unassignRole( String roleId, String principal )
|
public ActionStatus unassignRole( String roleId, String principal )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -186,10 +189,10 @@ public class DefaultRoleManagementService
|
||||||
{
|
{
|
||||||
throw new RedbackServiceException( e.getMessage() );
|
throw new RedbackServiceException( e.getMessage() );
|
||||||
}
|
}
|
||||||
return Boolean.TRUE;
|
return ActionStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean unassignRoleByName( String roleName, String principal )
|
public ActionStatus unassignRoleByName( String roleName, String principal )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -200,15 +203,15 @@ public class DefaultRoleManagementService
|
||||||
{
|
{
|
||||||
throw new RedbackServiceException( e.getMessage() );
|
throw new RedbackServiceException( e.getMessage() );
|
||||||
}
|
}
|
||||||
return Boolean.TRUE;
|
return ActionStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean roleExists( String roleId )
|
public AvailabilityStatus roleExists( String roleId )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
return roleManager.roleExists( roleId );
|
return new AvailabilityStatus( roleManager.roleExists( roleId ) );
|
||||||
}
|
}
|
||||||
catch ( RoleManagerException e )
|
catch ( RoleManagerException e )
|
||||||
{
|
{
|
||||||
|
@ -216,12 +219,12 @@ public class DefaultRoleManagementService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean templatedRoleExists( String templateId, String resource )
|
public AvailabilityStatus templatedRoleExists( String templateId, String resource )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
return roleManager.templatedRoleExists( templateId, resource );
|
return new AvailabilityStatus( roleManager.templatedRoleExists( templateId, resource ) );
|
||||||
}
|
}
|
||||||
catch ( RoleManagerException e )
|
catch ( RoleManagerException e )
|
||||||
{
|
{
|
||||||
|
@ -230,7 +233,7 @@ public class DefaultRoleManagementService
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean verifyTemplatedRole( String templateId, String resource )
|
public VerificationStatus verifyTemplatedRole( String templateId, String resource )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -241,7 +244,7 @@ public class DefaultRoleManagementService
|
||||||
{
|
{
|
||||||
throw new RedbackServiceException( e.getMessage() );
|
throw new RedbackServiceException( e.getMessage() );
|
||||||
}
|
}
|
||||||
return Boolean.TRUE;
|
return new VerificationStatus( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Role> getEffectivelyAssignedRoles( String username )
|
public List<Role> getEffectivelyAssignedRoles( String username )
|
||||||
|
@ -460,7 +463,7 @@ public class DefaultRoleManagementService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean updateRoleDescription( String roleName, String description )
|
public ActionStatus updateRoleDescription( String roleName, String description )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -473,10 +476,10 @@ public class DefaultRoleManagementService
|
||||||
{
|
{
|
||||||
throw new RedbackServiceException( new ErrorMessage( e.getMessage() ) );
|
throw new RedbackServiceException( new ErrorMessage( e.getMessage() ) );
|
||||||
}
|
}
|
||||||
return Boolean.TRUE;
|
return ActionStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean updateRoleUsers( Role role )
|
public ActionStatus updateRoleUsers( Role role )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -562,7 +565,7 @@ public class DefaultRoleManagementService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return Boolean.TRUE;
|
return ActionStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<ApplicationRoles> getApplicationRoles( String username )
|
public List<ApplicationRoles> getApplicationRoles( String username )
|
||||||
|
@ -671,7 +674,7 @@ public class DefaultRoleManagementService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean updateUserRoles( org.apache.archiva.redback.rest.api.model.User user )
|
public ActionStatus updateUserRoles( org.apache.archiva.redback.rest.api.model.User user )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -736,7 +739,7 @@ public class DefaultRoleManagementService
|
||||||
throw redbackServiceException;
|
throw redbackServiceException;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Boolean.TRUE;
|
return ActionStatus.SUCCESS;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,14 +39,19 @@ import org.apache.archiva.redback.policy.UserSecurityPolicy;
|
||||||
import org.apache.archiva.redback.rbac.RBACManager;
|
import org.apache.archiva.redback.rbac.RBACManager;
|
||||||
import org.apache.archiva.redback.rbac.RbacManagerException;
|
import org.apache.archiva.redback.rbac.RbacManagerException;
|
||||||
import org.apache.archiva.redback.rbac.UserAssignment;
|
import org.apache.archiva.redback.rbac.UserAssignment;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.ActionStatus;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.AvailabilityStatus;
|
||||||
import org.apache.archiva.redback.rest.api.model.ErrorMessage;
|
import org.apache.archiva.redback.rest.api.model.ErrorMessage;
|
||||||
import org.apache.archiva.redback.rest.api.model.Operation;
|
import org.apache.archiva.redback.rest.api.model.Operation;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.PasswordStatus;
|
||||||
import org.apache.archiva.redback.rest.api.model.Permission;
|
import org.apache.archiva.redback.rest.api.model.Permission;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.PingResult;
|
||||||
import org.apache.archiva.redback.rest.api.model.RegistrationKey;
|
import org.apache.archiva.redback.rest.api.model.RegistrationKey;
|
||||||
import org.apache.archiva.redback.rest.api.model.ResetPasswordRequest;
|
import org.apache.archiva.redback.rest.api.model.ResetPasswordRequest;
|
||||||
import org.apache.archiva.redback.rest.api.model.Resource;
|
import org.apache.archiva.redback.rest.api.model.Resource;
|
||||||
import org.apache.archiva.redback.rest.api.model.User;
|
import org.apache.archiva.redback.rest.api.model.User;
|
||||||
import org.apache.archiva.redback.rest.api.model.UserRegistrationRequest;
|
import org.apache.archiva.redback.rest.api.model.UserRegistrationRequest;
|
||||||
|
import org.apache.archiva.redback.rest.api.model.VerificationStatus;
|
||||||
import org.apache.archiva.redback.rest.api.services.RedbackServiceException;
|
import org.apache.archiva.redback.rest.api.services.RedbackServiceException;
|
||||||
import org.apache.archiva.redback.rest.api.services.UserService;
|
import org.apache.archiva.redback.rest.api.services.UserService;
|
||||||
import org.apache.archiva.redback.rest.services.utils.PasswordValidator;
|
import org.apache.archiva.redback.rest.services.utils.PasswordValidator;
|
||||||
|
@ -141,7 +146,8 @@ public class DefaultUserService
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Boolean createUser( User user )
|
@Override
|
||||||
|
public ActionStatus createUser( User user )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -216,10 +222,11 @@ public class DefaultUserService
|
||||||
{
|
{
|
||||||
throw new RedbackServiceException( new ErrorMessage( e.getMessage() ) );
|
throw new RedbackServiceException( new ErrorMessage( e.getMessage() ) );
|
||||||
}
|
}
|
||||||
return Boolean.TRUE;
|
return ActionStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean deleteUser( String username )
|
@Override
|
||||||
|
public ActionStatus deleteUser( String username )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -241,7 +248,7 @@ public class DefaultUserService
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
userManager.deleteUser( username );
|
userManager.deleteUser( username );
|
||||||
return Boolean.TRUE;
|
return ActionStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
catch ( UserNotFoundException e )
|
catch ( UserNotFoundException e )
|
||||||
{
|
{
|
||||||
|
@ -259,6 +266,7 @@ public class DefaultUserService
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
public User getUser( String username )
|
public User getUser( String username )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
|
@ -277,6 +285,7 @@ public class DefaultUserService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public List<User> getUsers()
|
public List<User> getUsers()
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
|
@ -298,7 +307,8 @@ public class DefaultUserService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean updateMe( User user )
|
@Override
|
||||||
|
public ActionStatus updateMe( User user )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
// check username == one in the session
|
// check username == one in the session
|
||||||
|
@ -365,10 +375,11 @@ public class DefaultUserService
|
||||||
|
|
||||||
updateUser( realUser );
|
updateUser( realUser );
|
||||||
|
|
||||||
return Boolean.TRUE;
|
return ActionStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean updateUser( User user )
|
@Override
|
||||||
|
public ActionStatus updateUser( User user )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -383,7 +394,7 @@ public class DefaultUserService
|
||||||
rawUser.setPermanent( user.isPermanent() );
|
rawUser.setPermanent( user.isPermanent() );
|
||||||
|
|
||||||
userManager.updateUser( rawUser );
|
userManager.updateUser( rawUser );
|
||||||
return Boolean.TRUE;
|
return ActionStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
catch ( UserNotFoundException e )
|
catch ( UserNotFoundException e )
|
||||||
{
|
{
|
||||||
|
@ -395,7 +406,8 @@ public class DefaultUserService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int removeFromCache( String userName )
|
@Override
|
||||||
|
public ActionStatus removeFromCache( String userName )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
if ( userAssignmentsCache != null )
|
if ( userAssignmentsCache != null )
|
||||||
|
@ -421,9 +433,10 @@ public class DefaultUserService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return ActionStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public User getGuestUser()
|
public User getGuestUser()
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
|
@ -438,6 +451,7 @@ public class DefaultUserService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public User createGuestUser()
|
public User createGuestUser()
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
|
@ -475,10 +489,11 @@ public class DefaultUserService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean ping()
|
@Override
|
||||||
|
public PingResult ping()
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
return Boolean.TRUE;
|
return new PingResult( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
private User getSimpleUser( org.apache.archiva.redback.users.User user )
|
private User getSimpleUser( org.apache.archiva.redback.users.User user )
|
||||||
|
@ -490,12 +505,13 @@ public class DefaultUserService
|
||||||
return new User( user );
|
return new User( user );
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean createAdminUser( User adminUser )
|
@Override
|
||||||
|
public ActionStatus createAdminUser( User adminUser )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
if ( isAdminUserExists() )
|
if ( isAdminUserExists().isExists() )
|
||||||
{
|
{
|
||||||
return Boolean.FALSE;
|
return ActionStatus.FAIL;
|
||||||
}
|
}
|
||||||
log.debug("Creating admin admin user '{}'", adminUser.getUsername());
|
log.debug("Creating admin admin user '{}'", adminUser.getUsername());
|
||||||
if (!RedbackRoleConstants.ADMINISTRATOR_ACCOUNT_NAME.equals(adminUser.getUsername())) {
|
if (!RedbackRoleConstants.ADMINISTRATOR_ACCOUNT_NAME.equals(adminUser.getUsername())) {
|
||||||
|
@ -526,16 +542,17 @@ public class DefaultUserService
|
||||||
{
|
{
|
||||||
throw new RedbackServiceException( new ErrorMessage( e.getMessage() ) );
|
throw new RedbackServiceException( new ErrorMessage( e.getMessage() ) );
|
||||||
}
|
}
|
||||||
return Boolean.TRUE;
|
return ActionStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean isAdminUserExists()
|
@Override
|
||||||
|
public AvailabilityStatus isAdminUserExists()
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
userManager.findUser( config.getString( UserConfigurationKeys.DEFAULT_ADMIN ) );
|
userManager.findUser( config.getString( UserConfigurationKeys.DEFAULT_ADMIN ) );
|
||||||
return Boolean.TRUE;
|
return new AvailabilityStatus( true );
|
||||||
}
|
}
|
||||||
catch ( UserNotFoundException e )
|
catch ( UserNotFoundException e )
|
||||||
{
|
{
|
||||||
|
@ -547,14 +564,15 @@ public class DefaultUserService
|
||||||
|
|
||||||
if ( cause != null && cause instanceof UserNotFoundException )
|
if ( cause != null && cause instanceof UserNotFoundException )
|
||||||
{
|
{
|
||||||
return Boolean.FALSE;
|
return new AvailabilityStatus( false );
|
||||||
}
|
}
|
||||||
throw new RedbackServiceException( new ErrorMessage( e.getMessage() ) );
|
throw new RedbackServiceException( new ErrorMessage( e.getMessage() ) );
|
||||||
}
|
}
|
||||||
return Boolean.FALSE;
|
return new AvailabilityStatus( false );
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean resetPassword( ResetPasswordRequest resetPasswordRequest )
|
@Override
|
||||||
|
public ActionStatus resetPassword( ResetPasswordRequest resetPasswordRequest )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
String username = resetPasswordRequest.getUsername();
|
String username = resetPasswordRequest.getUsername();
|
||||||
|
@ -598,9 +616,10 @@ public class DefaultUserService
|
||||||
throw new RedbackServiceException( new ErrorMessage( e.getMessage() ) );
|
throw new RedbackServiceException( new ErrorMessage( e.getMessage() ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
return Boolean.TRUE;
|
return ActionStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public RegistrationKey registerUser( UserRegistrationRequest userRegistrationRequest )
|
public RegistrationKey registerUser( UserRegistrationRequest userRegistrationRequest )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
|
@ -715,7 +734,8 @@ public class DefaultUserService
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean validateUserFromKey( String key )
|
@Override
|
||||||
|
public VerificationStatus validateUserFromKey( String key )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
String principal = null;
|
String principal = null;
|
||||||
|
@ -744,7 +764,7 @@ public class DefaultUserService
|
||||||
|
|
||||||
log.info( "account validated for user {}", user.getUsername() );
|
log.info( "account validated for user {}", user.getUsername() );
|
||||||
|
|
||||||
return Boolean.TRUE;
|
return new VerificationStatus( true );
|
||||||
}
|
}
|
||||||
catch ( MustChangePasswordException | AccountLockedException | AuthenticationException e )
|
catch ( MustChangePasswordException | AccountLockedException | AuthenticationException e )
|
||||||
{
|
{
|
||||||
|
@ -771,6 +791,7 @@ public class DefaultUserService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Collection<Permission> getCurrentUserPermissions()
|
public Collection<Permission> getCurrentUserPermissions()
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
|
@ -788,6 +809,7 @@ public class DefaultUserService
|
||||||
return getUserPermissions( userName );
|
return getUserPermissions( userName );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Collection<Operation> getCurrentUserOperations()
|
public Collection<Operation> getCurrentUserOperations()
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
|
@ -805,6 +827,7 @@ public class DefaultUserService
|
||||||
return getUserOperations( userName );
|
return getUserOperations( userName );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Collection<Operation> getUserOperations( String userName )
|
public Collection<Operation> getUserOperations( String userName )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
|
@ -822,6 +845,7 @@ public class DefaultUserService
|
||||||
return operations;
|
return operations;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Collection<Permission> getUserPermissions( String userName )
|
public Collection<Permission> getUserPermissions( String userName )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
|
@ -950,7 +974,8 @@ public class DefaultUserService
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean unlockUser( String username )
|
@Override
|
||||||
|
public ActionStatus unlockUser( String username )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
User user = getUser( username );
|
User user = getUser( username );
|
||||||
|
@ -958,12 +983,13 @@ public class DefaultUserService
|
||||||
{
|
{
|
||||||
user.setLocked( false );
|
user.setLocked( false );
|
||||||
updateUser( user );
|
updateUser( user );
|
||||||
return Boolean.TRUE;
|
return ActionStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
return Boolean.FALSE;
|
return ActionStatus.FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean lockUser( String username )
|
@Override
|
||||||
|
public ActionStatus lockUser( String username )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
User user = getUser( username );
|
User user = getUser( username );
|
||||||
|
@ -971,12 +997,13 @@ public class DefaultUserService
|
||||||
{
|
{
|
||||||
user.setLocked( true );
|
user.setLocked( true );
|
||||||
updateUser( user );
|
updateUser( user );
|
||||||
return Boolean.TRUE;
|
return ActionStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
return Boolean.FALSE;
|
return ActionStatus.FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean passwordChangeRequired( String username )
|
@Override
|
||||||
|
public PasswordStatus passwordChangeRequired( String username )
|
||||||
throws RedbackServiceException
|
throws RedbackServiceException
|
||||||
{
|
{
|
||||||
User user = getUser( username );
|
User user = getUser( username );
|
||||||
|
@ -984,21 +1011,9 @@ public class DefaultUserService
|
||||||
{
|
{
|
||||||
user.setPasswordChangeRequired( true );
|
user.setPasswordChangeRequired( true );
|
||||||
updateUser( user );
|
updateUser( user );
|
||||||
return Boolean.TRUE;
|
return new PasswordStatus( true );
|
||||||
}
|
}
|
||||||
return Boolean.FALSE;
|
return new PasswordStatus( false );
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean passwordChangeNotRequired( String username )
|
|
||||||
throws RedbackServiceException
|
|
||||||
{
|
|
||||||
User user = getUser( username );
|
|
||||||
if ( user == null )
|
|
||||||
{
|
|
||||||
user.setPasswordChangeRequired( false );
|
|
||||||
updateUser( user );
|
|
||||||
return Boolean.TRUE;
|
|
||||||
}
|
|
||||||
return Boolean.FALSE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,11 +20,14 @@ package org.apache.archiva.redback.rest.services.interceptors;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
|
||||||
|
import org.eclipse.jetty.util.annotation.Name;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
import javax.inject.Named;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* to setup some ObjectMapper configuration
|
* to setup some ObjectMapper configuration
|
||||||
|
@ -38,10 +41,12 @@ public class JacksonJsonConfigurator
|
||||||
private Logger log = LoggerFactory.getLogger( getClass() );
|
private Logger log = LoggerFactory.getLogger( getClass() );
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public JacksonJsonConfigurator( ObjectMapper objectMapper )
|
public JacksonJsonConfigurator( @Named("redbackJacksonJsonMapper") ObjectMapper objectMapper,
|
||||||
|
@Name( "redbackJacksonXMLMapper" ) XmlMapper xmlMapper)
|
||||||
{
|
{
|
||||||
log.info( "configure jackson ObjectMapper" );
|
log.info( "configure jackson ObjectMapper" );
|
||||||
objectMapper.disable( DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES );
|
objectMapper.disable( DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES );
|
||||||
|
xmlMapper.disable( DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES );
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
org.apache.cxf.common.logging.Slf4jLogger
|
|
@ -40,12 +40,17 @@
|
||||||
base-package="org.apache.archiva.redback.rest.services"/>
|
base-package="org.apache.archiva.redback.rest.services"/>
|
||||||
|
|
||||||
<bean id="jsonProvider" class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider">
|
<bean id="jsonProvider" class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider">
|
||||||
<property name="mapper" ref="redbackJacksonMapper"/>
|
<property name="mapper" ref="redbackJacksonJsonMapper"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="redbackJacksonMapper" class="com.fasterxml.jackson.databind.ObjectMapper">
|
<bean id="xmlProvider" class="com.fasterxml.jackson.jaxrs.xml.JacksonJaxbXMLProvider">
|
||||||
|
<property name="mapper" ref="redbackJacksonXMLMapper"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
<bean id="redbackJacksonJsonMapper" class="com.fasterxml.jackson.databind.ObjectMapper" />
|
||||||
|
<bean id="redbackJacksonXMLMapper" class="com.fasterxml.jackson.dataformat.xml.XmlMapper" />
|
||||||
|
|
||||||
|
|
||||||
<jaxrs:server id="redbackServices" address="/redbackServices">
|
<jaxrs:server id="redbackServices" address="/redbackServices">
|
||||||
|
|
||||||
<jaxrs:serviceBeans>
|
<jaxrs:serviceBeans>
|
||||||
|
@ -59,6 +64,7 @@
|
||||||
|
|
||||||
<jaxrs:providers>
|
<jaxrs:providers>
|
||||||
<ref bean="jsonProvider"/>
|
<ref bean="jsonProvider"/>
|
||||||
|
<ref bean="xmlProvider"/>
|
||||||
<ref bean="authenticationInterceptor#rest"/>
|
<ref bean="authenticationInterceptor#rest"/>
|
||||||
<ref bean="permissionInterceptor#rest"/>
|
<ref bean="permissionInterceptor#rest"/>
|
||||||
<ref bean="redbackServiceExceptionMapper"/>
|
<ref bean="redbackServiceExceptionMapper"/>
|
||||||
|
|
|
@ -161,7 +161,7 @@ public abstract class AbstractRestServicesTest
|
||||||
adminUser.setPassword( FakeCreateAdminServiceImpl.ADMIN_TEST_PWD );
|
adminUser.setPassword( FakeCreateAdminServiceImpl.ADMIN_TEST_PWD );
|
||||||
adminUser.setFullName( "the admin user" );
|
adminUser.setFullName( "the admin user" );
|
||||||
adminUser.setEmail( "toto@toto.fr" );
|
adminUser.setEmail( "toto@toto.fr" );
|
||||||
Boolean res = userService.createAdminUser( adminUser );
|
Boolean res = userService.createAdminUser( adminUser ).isSuccess();
|
||||||
|
|
||||||
FakeCreateAdminService fakeCreateAdminService = getFakeCreateAdminService();
|
FakeCreateAdminService fakeCreateAdminService = getFakeCreateAdminService();
|
||||||
//assertTrue( res.booleanValue() );
|
//assertTrue( res.booleanValue() );
|
||||||
|
|
|
@ -49,8 +49,8 @@ public class RoleManagementServiceTest
|
||||||
public void roleExist()
|
public void roleExist()
|
||||||
throws Exception
|
throws Exception
|
||||||
{
|
{
|
||||||
assertTrue( getRoleManagementService( authorizationHeader ).roleExists( "guest" ) );
|
assertTrue( getRoleManagementService( authorizationHeader ).roleExists( "guest" ).isExists() );
|
||||||
assertFalse( getRoleManagementService( authorizationHeader ).roleExists( "foo" ) );
|
assertFalse( getRoleManagementService( authorizationHeader ).roleExists( "foo" ).isExists() );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test( expected = ForbiddenException.class )
|
@Test( expected = ForbiddenException.class )
|
||||||
|
@ -59,7 +59,7 @@ public class RoleManagementServiceTest
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
assertTrue( getRoleManagementService( null ).roleExists( "guest" ) );
|
assertTrue( getRoleManagementService( null ).roleExists( "guest" ).isExists() );
|
||||||
}
|
}
|
||||||
catch ( ForbiddenException e )
|
catch ( ForbiddenException e )
|
||||||
{
|
{
|
||||||
|
|
|
@ -59,7 +59,7 @@ public class UserServiceTest
|
||||||
public void ping()
|
public void ping()
|
||||||
throws Exception
|
throws Exception
|
||||||
{
|
{
|
||||||
Boolean res = getUserService().ping();
|
Boolean res = getUserService().ping().isSuccess();
|
||||||
assertTrue( res.booleanValue() );
|
assertTrue( res.booleanValue() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -167,7 +167,7 @@ public class UserServiceTest
|
||||||
assertThat( messageContent ).contains( "Use the following URL to validate your account." ).contains(
|
assertThat( messageContent ).contains( "Use the following URL to validate your account." ).contains(
|
||||||
"http://wine.fr/bordeaux" ).containsIgnoringCase( "toto" );
|
"http://wine.fr/bordeaux" ).containsIgnoringCase( "toto" );
|
||||||
|
|
||||||
assertTrue( service.validateUserFromKey( key ) );
|
assertTrue( service.validateUserFromKey( key ).isSuccess() );
|
||||||
|
|
||||||
service = getUserService( authorizationHeader );
|
service = getUserService( authorizationHeader );
|
||||||
|
|
||||||
|
@ -177,7 +177,7 @@ public class UserServiceTest
|
||||||
assertTrue( u.isValidated() );
|
assertTrue( u.isValidated() );
|
||||||
assertTrue( u.isPasswordChangeRequired() );
|
assertTrue( u.isPasswordChangeRequired() );
|
||||||
|
|
||||||
assertTrue( service.validateUserFromKey( key ) );
|
assertTrue( service.validateUserFromKey( key ).isSuccess() );
|
||||||
|
|
||||||
}
|
}
|
||||||
catch ( Exception e )
|
catch ( Exception e )
|
||||||
|
@ -226,7 +226,7 @@ public class UserServiceTest
|
||||||
assertThat( messageContent ).contains( "Use the following URL to validate your account." ).contains(
|
assertThat( messageContent ).contains( "Use the following URL to validate your account." ).contains(
|
||||||
"http://localhost:" + getServerPort() ).containsIgnoringCase( "toto" );
|
"http://localhost:" + getServerPort() ).containsIgnoringCase( "toto" );
|
||||||
|
|
||||||
assertTrue( service.validateUserFromKey( key ) );
|
assertTrue( service.validateUserFromKey( key ).isSuccess() );
|
||||||
|
|
||||||
service = getUserService( authorizationHeader );
|
service = getUserService( authorizationHeader );
|
||||||
|
|
||||||
|
@ -236,7 +236,7 @@ public class UserServiceTest
|
||||||
assertTrue( u.isValidated() );
|
assertTrue( u.isValidated() );
|
||||||
assertTrue( u.isPasswordChangeRequired() );
|
assertTrue( u.isPasswordChangeRequired() );
|
||||||
|
|
||||||
assertTrue( service.validateUserFromKey( key ) );
|
assertTrue( service.validateUserFromKey( key ).isSuccess() );
|
||||||
|
|
||||||
}
|
}
|
||||||
catch ( Exception e )
|
catch ( Exception e )
|
||||||
|
@ -284,7 +284,7 @@ public class UserServiceTest
|
||||||
assertTrue(
|
assertTrue(
|
||||||
emailMessages.get( 0 ).getText().contains( "Use the following URL to validate your account." ) );
|
emailMessages.get( 0 ).getText().contains( "Use the following URL to validate your account." ) );
|
||||||
|
|
||||||
assertTrue( service.validateUserFromKey( key ) );
|
assertTrue( service.validateUserFromKey( key ).isSuccess() );
|
||||||
|
|
||||||
service = getUserService( authorizationHeader );
|
service = getUserService( authorizationHeader );
|
||||||
|
|
||||||
|
@ -294,9 +294,9 @@ public class UserServiceTest
|
||||||
assertTrue( u.isValidated() );
|
assertTrue( u.isValidated() );
|
||||||
assertTrue( u.isPasswordChangeRequired() );
|
assertTrue( u.isPasswordChangeRequired() );
|
||||||
|
|
||||||
assertTrue( service.validateUserFromKey( key ) );
|
assertTrue( service.validateUserFromKey( key ).isSuccess() );
|
||||||
|
|
||||||
assertTrue( service.resetPassword( new ResetPasswordRequest( "toto", "http://foo.fr/bar" ) ) );
|
assertTrue( service.resetPassword( new ResetPasswordRequest( "toto", "http://foo.fr/bar" ) ).isSuccess() );
|
||||||
|
|
||||||
emailMessages = assertService.getEmailMessageSended();
|
emailMessages = assertService.getEmailMessageSended();
|
||||||
assertEquals( 2, emailMessages.size() );
|
assertEquals( 2, emailMessages.size() );
|
||||||
|
|
Loading…
Reference in New Issue