ユーザーチャネル接続を処理するために、GoogleChannelAPIとadreess/_ah / channel /connected/に登録されたサーブレットを使用しています。メッセージ後ハンドラで接続が発生すると、UserServiceget.CurrentUser()がnullを返すのに対し、アプリケーションの他のサーブレットではuserを返すことがわかりました。何の場合は教えてください。サーブレットコードは次のようになります。
@SuppressWarnings("serial")
public class ConnectServlet extends HttpServlet {
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
if( user != null ){
String user_name = user.getNickname();
Logger.getLogger("server").log( Level.WARNING, "User " + user_name + " connected" );
}
}
}
セキュリティ制約は次のとおりです。
<security-constraint>
<web-resource-collection>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>*</role-name>
</auth-constraint>
</security-constraint>