3

ユーザー認証に WSO2 Identity Server 4.1.0 が提供する AuthenticationAdmin Web サービスを使用しています。

Web サービス操作「ログイン」を使用して、ユーザーを認証し、JSESSIONID を取得できます。

作成されたセッションは最終的にタイムアウトします。セッションがまだ有効かどうかを確認するにはどうすればよいですか?

いくつかのコンテキスト(これが正しいかどうかも確認するため):WSO2サーバーによって「保護」されていないセカンダリWebサービスを実行しています。ユーザーが正常にログインしたかどうかを確認できるように、このセカンダリ Web サービスを変更できます。しかし、方法がわかりません。そのため、JSESSIONID を取得したら、ユーザーがセカンダリ Web サービスにアクセスするたびにそれを使用する必要があります。

4

1 に答える 1

3

私の理解が正しければ、認証されたユーザーのみに Web サービスへのアクセスを許可する必要があります。

Web サービスを保護するには、さまざまな方法があります。AuthenticationAdmin を使用してログインしているため、Web サービスを管理サービスとして定義できます。

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 で次のプロパティを確認できます。

<parameter name="adminService" locked="false">true</parameter>
<parameter name="hiddenService" locked="false">true</parameter>

このサービスから生成された 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

ServiceClient client = stub._getServiceClient();
Options option = client.getOptions();
option.setManageSession(true);
option.setProperty(org.apache.axis2.transport.http.HTTPConstants.COOKIE_STRING, cookie);

これが役立つことを願っています。

ありがとう!

于 2013-06-28T03:42:46.180 に答える