Базовая аутентификация для сервиса WSO2 EI API - PullRequest
0 голосов
/ 25 октября 2019

Я использую WSO2-EI 6.4.0. Я пробовал эту разработку с ссылка . Это работает для меня. Но мне нужно получить имя пользователя и пароль от другой серверной службы. В этом примере был показан жесткий пользователь и пароль. Я добавил этот код для вашей справки. Пожалуйста, помогите мне получить эти имя пользователя и пароль из файла свойств.

public boolean processSecurity(String credentials) {
        String decodedCredentials = new String(new Base64().decode(credentials.getBytes()));
        String usernName = decodedCredentials.split(":")[0];
        String password = decodedCredentials.split(":")[1];
        if ("admin".equals(username) && "admin".equals(password)) {
            return true;
        } else {
            return false;
        }
}

Я добавил обработчик EI WSO2, как показано ниже. Мне нужно передать значение из back service или вызвать другую последовательность и загрузить.

<api context="/test">
    <resource methods="POST">
        <inSequence>
        ................
        </inSequence>
        <outSequence>
        ................
        </outSequence>
    </resource>
    <handlers>        
         <handler class="rezg.ride.common.BasicAuthHandler">
            <property name="cm_password" value="admin"/>
            <property name="cm_userName" value="admin"/>
         </handler>
    </handlers>
</api>

Когда мы запускаем вышеуказанный API, сначала выполняются обработчики, а затем запускаются и выходят последовательности. Поэтому мне нужно получить имя пользователя и пароль, вызывающие Sequence или любой другой метод, прежде чем запускать этот BasicAuthHandler.

1 Ответ

0 голосов
/ 28 октября 2019

Если вам нужно прочитать файл свойств из посредника класса, это просто прямое чтение файла свойств java. Пожалуйста, обратитесь к следующему примеру вызова для чтения файла свойств. В этом сценарии просто прочитайте, что файл carbon.properties существует в каталоге conf.

public boolean mediate(MessageContext context) {
        String passwordFileLocation = System.getProperty("conf.location")+"/carbon.properties";
        try (FileInputStream input = new FileInputStream(passwordFileLocation)) {
            Properties prop = new Properties();

            // load a properties file
            prop.load(input);
            log.info("------org.wso2.CipherTransformation : " + prop.getProperty("org.wso2.CipherTransformation"));

        } catch (IOException ex) {
            ex.printStackTrace();
        }
       return true;
    }

Чтобы узнать местоположение сервера и местоположение, есть свойства системы JAVA, которые устанавливаются во время запуска сервера wso2. Ниже приведены некоторые полезные системные свойства системы.

  • carbon.local.ip
  • carbon.home
  • conf.location
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...