Плагин Bamboo для управления доступом к REST-модулю

Я создал плагин в бамбуке с одним модулем.

atlassian-plugin.xml:

<rest key="REST API Key" path="/plugin/myplugin/api" version="1.0">
    <description>Rest API for plugin</description>
</rest>

Теперь у меня есть класс с одним методом:

@Path("/config/user")
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public class UserService {    
    @PUT
    @Path("/add")
    public Response addUser(User user){
        return Response.ok().build();
    }
}

Доступ к этой конкретной конечной точке mybamboo.host:6990/rest/plugin/myplugin/api/config/user/add может получить любой пользователь, имеющий доступ к этому конкретному экземпляру Bamboo.

Теперь мой вопрос: можно ли ограничить доступ к этой конечной точке только для администраторов бамбука, а не для всех пользователей?

Я знаю, что это возможно с помощью классов веб-действий путем расширения BambooActionSupport и реализации интерфейса GlobalAdminSecurityAware. Но есть ли аналогичный способ реализовать такой контроль доступа в оставшемся модуле?


person Swarup Donepudi    schedule 23.05.2016    source источник


Ответы (1)


По умолчанию для всех остальных ресурсов требуется как минимум базовая аутентификация, см. Руководство по разработке Atlassian REST API.

Кроме того, вы можете внедрить com.atlassian.sal.api.user.UserManager в свою службу отдыха и применить логику следующим образом:

String username = userManager.getRemoteUsername();
if ( userManager.isAdmin(username) || userManager.isSystemAdmin(username) ){
    .....
}else if isUserInGroup(...){
    ...
}
person pharsfalvi    schedule 21.02.2017