【发布时间】:2016-08-26 16:04:00
【问题描述】:
我正在尝试在 WSO2 IS 上创建身份验证机制,但遇到以下问题: - 我按照下面的链接实现了 remote_user,结果没问题。我可以从控制台登录和访问 WSO API
https://svn.wso2.org/repos/wso2/people/asela/user-mgt/remote-user-api/4.2.X/
但是当我在网页上尝试时,我无法向 WSO IS 进行身份验证。以下是我的代码:
public void init() throws AxisFault{
userName = HDConstants.USER_NAME;
password = HDConstants.PASSWORD;
backEndServerURL = HDConstants.SERVER_URL;
setKeyStore();
configCtx = ConfigurationContextFactory.createConfigurationContextFromFileSystem(null, null);
}
public void setKeyStore() {
System.setProperty("javax.net.ssl.trustStore", HDConstants.TRUST_STORE_PATH);
System.setProperty("javax.net.ssl.trustStorePassword", HDConstants.TRUST_STORE_PASSWORD);
System.setProperty("javax.net.ssl.trustStoreType", HDConstants.TRUST_STORE_TYPE);
}
public boolean authenticateUser(String userName, String password) throws Exception {
String serviceURL = null;
ServiceClient client = null;
Options option = null;
boolean isAuthenticated = false;
AuthenticationAdminStub authStub = null;
serviceURL = backEndServerURL + "AuthenticationAdmin";
authStub = new AuthenticationAdminStub(configCtx, serviceURL);
client = authStub._getServiceClient();
option = client.getOptions();
option.setManageSession(true);
option.setProperty(org.apache.axis2.transport.http.HTTPConstants.COOKIE_STRING, authCookie);
isAuthenticated = authStub.login(userName, password, HDConstants.APP_ID);
authCookie = (String) authStub._getServiceClient().getServiceContext()
.getProperty(HTTPConstants.COOKIE_STRING);
System.out.println(" Auth Cookie ==== " + authCookie);
return isAuthenticated;
}
`
在控制器中我使用下面的代码来调用验证方法:
AuthenticationServiceClient authenticationServiceClient = new AuthenticationServiceClient();
authenticationServiceClient.init();
authenticationServiceClient.authenticateUser("admin", "admin");
但结果并不好。系统提示:
at org.apache.axis2.deployment.AxisConfigBuilder.processTransportSenders(AxisConfigBuilder.java:688)
at org.apache.axis2.deployment.AxisConfigBuilder.populateConfig(AxisConfigBuilder.java:124)
at org.apache.axis2.deployment.DeploymentEngine.populateAxisConfiguration(DeploymentEngine.java:887)
at org.apache.axis2.deployment.FileSystemConfigurator.getAxisConfiguration(FileSystemConfigurator.java:116)
at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:64)
at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContextFromFileSystem(ConfigurationContextFactory.java:210)
at com.home.hduser.wsois.AuthenticationServiceClient.init(AuthenticationServiceClient.java:29)
我不知道为什么我可以在控制台上进行身份验证,但不能在 webapp 上进行验证
以及以下文件中附加的完整跟踪错误: https://drive.google.com/open?id=0B9zEqmu0HBunSlp3X0dpWC1YU0E
感谢您在这种情况下的帮助。 谢谢
【问题讨论】:
-
发布您的完整错误跟踪。
-
嗨 Bhathiya,我在上面的链接中附加了完整的错误。
-
你的 IS 版本是多少?
-
我正在使用最新版本的 WSO IS (5.1.0)
-
作为在 WSO2 AS 5.3.0 中部署 webapp 的解决方法,请先删除此 jar:tomcat-annotations-api-7.0.59.jar tomcat-api-7.0.59.jar tomcat-catalina -7.0.59.jar tomcat-catalina-ha-7.0.59.jar tomcat-jdbc-7.0.47.jar tomcat-juli-7.0.59.jar tomcat-tribes-7.0.59.jar tomcat-util-7.0。 59.jar
标签: spring-mvc authentication wso2 wso2is