同じTomcatに2つのアプリケーションがあります。これらのアプリケーションの1つは、認証にスプリングセキュリティを使用します。最初のものにログインしたときに、メソッドgetRemoteUserが2番目のアプリケーションで有効なユーザー名を返すようにしたいと思います。spring security、tomcat、getRemoteUserメソッド
これを達成する簡単な方法はありますか?あなたはそれを行う最も簡単な解決法を教えてください。回答
同じTomcatに2つのアプリケーションがあります。これらのアプリケーションの1つは、認証にスプリングセキュリティを使用します。最初のものにログインしたときに、メソッドgetRemoteUserが2番目のアプリケーションで有効なユーザー名を返すようにしたいと思います。spring security、tomcat、getRemoteUserメソッド
これを達成する簡単な方法はありますか?あなたはそれを行う最も簡単な解決法を教えてください。回答
ため
おかげで私は、アプリケーション2は、アプリケーション1のセキュリティ情報にアクセスすることができます信じていません。とにかく、おそらくリモーティングを使用して、またはWebサービスでこれを行うことができます。しかし、春のセキュリティフレームワークでは、アプリケーションを横断してJavaコードだけで情報を得ることができる場所はないと思います。
これは、ログインしているユーザーのローカル現在返されます:APPAは、このコントローラは、ユーザ名、ログインするAPPAで使用したものを返しますさらすAPPBにログインしている場合、だから、
String username = SecurityContextHolder.getContext()
.getAuthentication().getName();
をappBに入れます。 appAは既に知っているはずですが、mmmm:
public class UserController extends AbstractController {
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest req,
HttpServletResponse res) throws Exception {
String username = SecurityContextHolder.getContext()
.getAuthentication().getName();
ModelAndView mv = new ModelAndView("jsonResponse");
mv.addObject("username", username);
return mv;
}
}
tomcatがセキュリティに関する情報を共有できるように、私はむしろ何らかのシングルサインオンソリューションについて考えていました。私は、TomcatでSingleSignOnバルブを使用する方法についてはあまりよく分かりません。/ –
OK。私はちょうどCAS SSO、Tomcat、Spring Securityを使ってSSOプロジェクトを完成させました。セットアップがとても簡単で、うまくいきます。 http://www.jasig.org/cas – rodrigoap