Jolokia在Spring Boot应用程序和hawt.io中使用基本身份验证

时间:2017-04-04 04:53:08

标签: java spring-boot spring-security hawtio jolokia

我想做的事情:

我尝试使用嵌入式Jolokia运行示例Spring启动应用程序,在其上配置基本身份验证并从hawt.io连接到它,这是一种试点项目。

我的设置(localhost上的所有内容,没有防火墙):

  • 端口8080上的Spring应用程序(默认)
  • Hawtio on 5555

我使用最新的弹簧靴可用于我使用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 security:

@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响应,所以我得出结论我的spring安全设置正常

现在是时候运行hawt.io了:

java -jar hawtio-app-1.5.0.jar --port 5555

现在当我点击"连接"在hawt.io用户界面输入我的localhost的详细信息后:8080 / jolokia连接(它没有任何用户/密码文本字段)它会把我扔到hawt.io登录界面。当我进入admin / admin时,我看到一个"无法连接,禁止" UI消息。

我试图看到hawt.io发送到我的localhost:8080(使用burp套件)的请求,我看到在看到hawt.io登录屏幕之前我看到很多401(未经授权)尝试在8080上查询jolokia时的响应(当然我这样做,因为它在进入admin / admin之前 - 因此没有机会提前知道)。 进入hawtio的登录界面后,输入admin / admin并按"登录" - 我根本没有看到从hawt.io到8080的任何请求。我只看到从UI到hawt.io服务器的一个请求,它响应403.所以我怀疑它是hawt.io本身的内部认证窗口,它与jolokia没有任何关系。

所以我要问的是 - 我在这个设置中缺少的是什么,如何配置hawt.io以便能够连接到我的设置?

提前多多感谢

2 个答案:

答案 0 :(得分:1)

将jolokia主机名添加到属性hawtio.proxyWhitelist为我完成了这项工作。

答案 1 :(得分:0)

尝试将 - hosts: all vars: - files: - 1.zip - 2.zip - 3.zip tasks: - name: Download all files get_url: url=http://url.com/{{ item }} dest=/home/user/downloads/{{ item }} force=no with_items: "{{ files }}" - name: extracting downloaded files unarchive: src: {{ item }}.zip dest: /var/lib/foo remote_src: True with_items: "{{ files }}" 添加到Spring Boot endpoints.jolokia.sensitive=false

默认情况下,Spring Boot会将Jolokia视为敏感的"资源,可能导致访问Jolokia的授权错误。