2013-12-19 3 views
0

Axis2 및 Rampart를 사용하는 클라이언트 응용 프로그램을 수정하려고합니다. 앱은 여러 자격 정보 집합을 사용하여 동일한 API에 액세스합니다. 현재 암호 콜백 클래스는 사용할 자격 증명을 결정하기 위해 axis2.xml 파일의 사용자를 사용합니다. 이는 단일 사용자 만 허용하기 때문에 분명히 작동하지 않습니다. 누군가 나에게 그것을 할 올바른 방법을 설명해 주시겠습니까?Axis2 및 Rampart에서 동적 사용자 자격 증명을 사용하려면 어떻게해야합니까?

답변

0

http://www.ibm.com/developerworks/java/library/j-jws4/에서 유용한 예제를 발견했습니다. axis2.xml에서 OutflowSecurity 매개 변수를 제거했습니다. 패스워드 콜백 클래스도 없앴다. 나는 그것을로드하기 위해 policy.xml 파일과 코드를 추가했다. 이 코드를 사용하여 사용자 이름과 비밀번호를 제공합니다.

// Prepare the client 
PartnerAPIStub stub = stubProvider.getStub(); 
ServiceClient client = stub._getServiceClient(); 
client.engageModule("rampart"); 
org.apache.axis2.client.Options options = client.getOptions(); 
options.setProperty(RampartMessageData.KEY_RAMPART_OUT_POLICY, policy); 
options.setUserName(account.getApiUser()); 
options.setPassword(account.getApiPassword()); 

// Send the request 
RetrieveResponseMsg response = stub.retrieve(requestDoc).getRetrieveResponseMsg();