我正在使用WSO2 Identity Server 4.1.0提供的AuthenticationAdmin Web服务进行用户身份验证 .
通过webservice操作'login',我可以验证用户并检索JSESSIONID .
创建的会话最终会超时 . 如何检查会话是否仍然有效?
一些上下文(也是为了检查我是否正确):我运行的是辅助Web服务,它不受WSO2服务器的“保护” . 我可以修改这个辅助Web服务,以便它可以检查用户是否已成功登录 . 但我不知道如何 . 因此,一旦检索到JSESSIONID,我将需要在每次用户访问辅助Web服务时使用它 .
1 回答
如果我理解正确,您只需要为经过身份验证的用户授予对Web服务的访问权限 .
有许多方法可以保护Web服务 . 由于您使用AuthenticationAdmin登录,因此您可以将Web服务定义为管理服务 .
我想你正在为你的网络服务尝试代码优先 . 您可以尝试将您的Web服务扩展到org.wso2.carbon.core.AbstractAdmin .
例如,我们可以在WSO2内核中看到UserAdmin服务 . https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.1.0/core/org.wso2.carbon.user.mgt/4.1.0/
UserAdmin服务:https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.1.0/core/org.wso2.carbon.user.mgt/4.1.0/src/main/java/org/wso2/carbon/user/mgt/UserAdmin.java
axis2 services.xml:https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.1.0/core/org.wso2.carbon.user.mgt/4.1.0/src/main/resources/META-INF/services.xml
您可以在services.xml中看到以下属性
使用此服务生成的WSDL,您可以创建服务存根 .
见https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.1.0/service-stubs/org.wso2.carbon.user.mgt.stub/4.1.0/
现在,您可以使用存根和cookie来访问服务 . 例如,见https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.1.0/core/org.wso2.carbon.user.mgt.ui/4.1.0/src/main/java/org/wso2/carbon/user/mgt/ui/UserAdminClient.java
我希望这有帮助 .
谢谢!