0

1 つのモジュールを含むプラグインを Bamboo で作成しました。

atlassian-plugin.xml:

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

これで、1 つのメソッドを含むクラスができました。

@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 の特定のインスタンスにアクセスできるすべてのユーザーがアクセスできます。

ここで私の質問は、このエンドポイントへのアクセスをすべてのユーザーではなく、Bamboo 管理者のみに制限することは可能ですか?

これは、BambooActionSupport を拡張し、GlobalAdminSecurityAware インターフェイスを実装することにより、Webwork アクション クラスを使用して可能であることを知っています。しかし、残りのモジュールでこの種のアクセス制御を実現する同様の方法はありますか?

4

1 に答える 1

1

デフォルトでは、すべての REST リソースには少なくとも基本認証が必要です。 Atlassian REST API 設計ガイドラインを参照してください。

さらに、com.atlassian.sal.api.user.UserManager を残りのサービスに挿入し、次のようにロジックを適用できます。

String username = userManager.getRemoteUsername();
if ( userManager.isAdmin(username) || userManager.isSystemAdmin(username) ){
    .....
}else if isUserInGroup(...){
    ...
}
于 2017-02-21T13:42:45.903 に答える