我想做的事情:
我尝试使用嵌入式Jolokia运行示例Spring启动应用程序,在其上配置基本身份验证并从hawt.io连接到它,这是一种试点项目。
我的设置(localhost上的所有内容,没有防火墙):
我使用最新的弹簧靴可用于我使用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以便能够连接到我的设置?
提前多多感谢
答案 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的授权错误。