サイトメッシュを使用して、コンテンツを画面にまとめようとしています。サイト メッシュが表示しているページを表示するには、サイトに「ログイン」する必要があり、サイト メッシュが取り込んで装飾しようとしているコンポーネントを表示するには、ログインする必要があります。
これを行うために、春のセキュリティと PersistentTokenBasedRememberMeServices を使用しています。何が起こるかというと、サイト メッシュがコンポーネントを装飾するために呼び出すと、ユーザーがログインしてページにアクセスできる場合でも、コンテンツではなくスプリング セキュリティによって提供されるログイン画面が表示されます。
サイト メッシュのコードを掘り下げると、サイト メッシュは URL と URL 接続を作成して、装飾するための呼び出しを行います。
URL url = new URL(this.page);
URLConnection urlConn = url.openConnection();
urlConn.setUseCaches(true);
BufferedReader in = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
だから私は私の質問だと思います.春のセキュリティトークンをこのようにurlConnectionに添付できますか?
URL url = new URL(page);
URLConnection urlConn = url.openConnection();
urlConn.setRequestProperty("Cookie", myCookie);
urlConn.setUseCaches(true);
urlConn.connect();
その場合、Cookie の形式はどのようなものにする必要がありますか? 以下のものを試しました(意味不明なのは、春のセキュリティによって生成されたセキュリティCookieの値です)
securityCookie=Y2E0cFR1WWp6RTRjTzRBSFhYaG50dz09OjR mNzlON2syVXh3M01BSXRONGV2QXc9PQ
Spring Security から Cookie 盗難の例外が発生するため、機能しません。何か案は?パスまたはドメインを追加する必要がありますか? もしそうなら、フォーマットは何ですか?
Cookie の値を何らかの方法でエンコードする必要がありますか?