私がやろうとしていること:
Jolokia が組み込まれたサンプル Spring Boot アプリケーションを実行し、基本認証を構成し、hawt.io から接続しようとしています。パイロット プロジェクトのようなものです。
私のセットアップ(ローカルホスト上のすべて、ファイアウォールなし):
- ポート 8080 の Spring アプリケーション (デフォルト)
- ポート 5555 の Hawtio
jolokia と hawt.io を使用するサンプル アプリケーションで利用可能な最新のスプリング ブートを使用しています (免責事項、スプリング ブートとスプリング セキュリティはかなり初めてです)。
Spring Boot バージョン: 1.5.2 RELEASE Spring Security: 4.2.2 RELEASE Jolokia: 1.3.5
テスト 1:スプリング セキュリティをまったく使用せずに実行する (私は を設定management.security.enabled=false
しましたapplication.properties
) - すべてが期待どおりに動作し、ブラウザと hawt.io アプリケーションの両方からユーザー/パスワードなしで localhost:8080/jolokia に接続できます。ローカルで実行しています
テスト 2:行をコメントアウトし、management.security.enabled=false
Spring セキュリティをプラグインする次の構成ファイルを作成します。
@Configuration
@EnableWebSecurity
public class SpringSecurityConfiguration extends WebSecurityConfigurerAdapter {
@Autowired
public void configureGlobalSecurity(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("admin")
.password("admin")
.roles("ACTUATOR");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/").permitAll()
.antMatchers("/error").permitAll()
.antMatchers("/jolokia/**").hasRole("ACTUATOR")
.and().httpBasic();
}
}
この手順の後、ブラウザーから localhost:8080/jolokia に接続すると、基本認証のポップアップが表示されます。admin/admin と入力すると、Jolokia が応答していることがわかるので、春のセキュリティ設定は問題ないと判断します。
hawt.io を実行します。
java -jar hawtio-app-1.5.0.jar --port 5555
そして、localhost:8080 / jolokia 接続の詳細を入力した後、hawt.io UI で「接続」をクリックすると (ユーザー/パスワードのテキスト フィールドはありません)、hawt.io ログイン画面が表示されます。そこで admin/admin に入ると、「接続に失敗しました、禁止されています」という UI メッセージが表示されます。
hawt.io が自分の localhost:8080 に送信するリクエストを (バープ スイートを使用して) 確認しようとしましたが、hawt.io のログイン画面が表示される前に、クエリを実行しようとすると多くの 401 (未承認) 応答が表示されることがわかりました。 jolokia on 8080 (もちろんそうします。admin/admin に入る前なので、事前に知る機会はありません)。hawtio のログイン画面に入ったら、admin/admin と入力して「ログイン」を押します。hawt.io から 8080 へのリクエストがまったく表示されません。UI から hawt.io サーバーへの 403 で応答するリクエストが 1 つだけ表示されます。したがって、hawt.io 自体の内部認証ウィンドウであると思われ、jolokia とは関係ありません。
だから私が求めているのは、このセットアップで欠けているものです。hawt.io をセットアップに接続できるようにするには、どのように設定すればよいですか?
事前にどうもありがとう