После предыдущего вопроса - наличие WSO2 APIM 2.6.0 с несколькими шлюзами (внутренними, dmz) мы хотели бы зашифровать учетные данные для шлюзов.
Моя идея - добиться чего-то вроде:
api-manager.xml
<Environment api-console="true" type="hybrid">
<Name>Internal</Name>
<Description>Internal GW</Description>
<ServerURL>https://localhost:${mgt.transport.https.port}${carbon.context}services/</ServerURL>
<Username>admin</Username>
<Password svns:secretAlias="APIGateway.Internal.Password>password</Password>
<GatewayEndpoint>https://internal-host:8243</GatewayEndpoint>
<GatewayWSEndpoint>ws://${carbon.local.ip}:9099</GatewayWSEndpoint>
</Environment>
<Environment api-console="true" type="hybrid">
<Name>External</Name>
<Description>DMZ GW</Description>
<ServerURL>https://dmz-host:9444${carbon.context}services/</ServerURL>
<Username>admin</Username>
<Password svns:secretAlias="APIGateway.External.Password">password</Password>
<GatewayEndpoint>https://dmz-host:8244</GatewayEndpoint>
<GatewayWSEndpoint>ws://${carbon.local.ip}:9099</GatewayWSEndpoint>
</Environment>
cipher-tool.properties
APIGateway.Internal.Password=repository/conf/api-manager.xml//APIManager/APIGateway/Environments/Environment[Name='Internal']/Password,false
APIGateway.External.Password=repository/conf/api-manager.xml//APIManager/APIGateway/Environments/Environment[Name='External']/Password,false
С одним шлюзом это довольно просто, и это работает - мы можем определить свойство APIGateway.Password
, которое будет использоваться с ciphertool. Свойство уже предопределено в cipher-tool.properties (по умолчанию закомментировано)
Для меня странно, что имя псевдонима так или иначе зависит от пути XML, мы не можем использовать какое-либо имя псевдонима. Даже переименование псевдонима в APIGateway.Environment.Password
(или APIGateway.Internal.Password) приводит к тому, что пароль не разрешается. Есть идеи, каковы правила именования псевдонимов?
Если для издателя определено несколько шлюзов - как мы можем различить секретные псевдонимы для нескольких шлюзов? Это определенно работает для источников данных. Я могу определить псевдонимы в cipher-tool и cipher-text, учетные данные правильно зашифрованы, но, по-видимому, не разрешены
Возможно ли вообще зашифровывать учетные данные для нескольких шлюзов? Я пропустил / неправильно понял какие-либо правила именования? Или мне просто поискать опечатки в моем конфиге?