Сервер идентификации WSO2 программно создает приложение, выдающее предупреждение «Попытка незаконного доступа»

Я разрабатываю клиент Java, который создаст приложение на сервере идентификации WSO2 посредством вызова службы OAuthAdminService. После некоторых копаний я обнаружил, что метод registerOAuthApplicationData () - это тот метод, который используется для создания приложения в IS. Перед вызовом метода я аутентифицировал пользователя-администратора с помощью метода login () типа AuthenticationAdminStub. Даже после такой аутентификации метод registerOAuthApplicationData () заставляет консоль IS печатать

[2016-04-26 13: 08: 52,577] ПРЕДУПРЕЖДЕНИЕ {org.wso2.carbon.server.admin.module.handler.AuthenticationHandler} - Попытка незаконного доступа к [2016-04-26 13: 08: 52,0577] от IP-адрес 127.0.0.1 при попытке аутентифицировать доступ к службе OAuthAdminService

и приложение не создается в базе данных IS.

Код, который я пробовал, выглядит следующим образом

import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.ConfigurationContextFactory;
import org.apache.axis2.transport.http.HTTPConstants;
import org.wso2.carbon.authenticator.proxy.AuthenticationAdminStub;
import org.wso2.carbon.identity.oauth.OAuthAdminServicePortTypeProxy;
import org.wso2.carbon.identity.oauth.dto.xsd.OAuthConsumerAppDTO;

    public class IdentityClientOne {    


            private final static String SERVER_URL = "https://localhost:9443/services/";
            private final static String APP_ID = "myapp";

            /**
             * @param args
             */
            public static void main(String[] args) {

                AuthenticationAdminStub authstub = null;
                ConfigurationContext configContext = null;

                System.setProperty("javax.net.ssl.trustStore", "wso2carbon.jks");
                System.setProperty("javax.net.ssl.trustStorePassword", "wso2carbon");

                try {
                    configContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem(
                            "repo", "repo/conf/client.axis2.xml");
                    authstub = new AuthenticationAdminStub(configContext, SERVER_URL
                            + "AuthenticationAdmin");

                    // Authenticates as a user having rights to add users.
                    if (authstub.login("admin", "admin", APP_ID)) {
                        System.out.println("admin authenticated");


                        OAuthConsumerAppDTO consumerApp = new OAuthConsumerAppDTO("Oauth-2.0",
                                "sample_app",
                                "",
                                "authorization_code implicit password client_credentials refresh_token urn:ietf:params:oauth:grant-type:saml2-bearer iwa:ntlm","","","");


                        OAuthAdminServicePortTypeProxy OAuthAdminProxy = new OAuthAdminServicePortTypeProxy();
                        OAuthAdminProxy.registerOAuthApplicationData(consumerApp);

                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }

    }

Помогите пожалуйста, что надо делать правильно?


person Meeran Mohideen    schedule 26.04.2016    source источник


Ответы (1)


Вы должны получить доступ к заглушке через аутентифицированный сеанс.

Не могли бы вы попробовать ниже.

public class Test {
    private final static String SERVER_URL = "https://localhost:9443/services/";

    public static void main(String[] args) throws RemoteException, OAuthAdminServiceException {

        OAuthAdminServiceStub stub = new OAuthAdminServiceStub(null, SERVER_URL + "OAuthAdminService");

        ServiceClient client = stub._getServiceClient();
        authenticate(client);

        OAuthConsumerAppDTO consumerAppDTO = new OAuthConsumerAppDTO();
        consumerAppDTO.setApplicationName("sample-app");
        consumerAppDTO.setCallbackUrl("http://localhost:8080/playground2/oauth2client");
        consumerAppDTO.setOAuthVersion("OAuth-2.0");
        consumerAppDTO.setGrantTypes("authorization_code implicit password client_credentials refresh_token "
                                     + "urn:ietf:params:oauth:grant-type:saml2-bearer iwa:ntlm");

        stub.registerOAuthApplicationData(consumerAppDTO);
    }

    public static void authenticate(ServiceClient client) {
        Options option = client.getOptions();
        HttpTransportProperties.Authenticator auth = new HttpTransportProperties.Authenticator();
        auth.setUsername("admin");
        auth.setPassword("admin");
        auth.setPreemptiveAuthentication(true);
        option.setProperty(org.apache.axis2.transport.http.HTTPConstants.AUTHENTICATE, auth);
        option.setManageSession(true);
    }
}
person Malithi Edirisinghe    schedule 26.04.2016