2017-04-04 77 views
1

我想要做的事:椒在春季啓動應用程序的基本身份驗證和hawt.io

我試圖運行嵌入式椒樣本春天啓動應用程序,就可以配置基本身份驗證和連接從hawt.io到它,我是一個試點項目。

我的設置(一切都在本地主機上,沒有防火牆):在端口8080端口(默認)

  • Spring應用程序
  • Hawtio 5555

我使用的是最新的春季啓動可用於我的示例應用程序使用jolokia和hawt.io(免責聲明我是相當新的彈簧引導和彈簧安全)

Spring Boot版本:1.5.2 RELEASE 春季安全:4.2.2發佈 椒:1.3.5

測試1:沒有運行在所有的春季安全(我已經設置在application.propertiesmanagement.security.enabled=false) - 一切正常,我能夠連接爲localhost:既沒有從我的瀏覽器和應用hawt.io任何用戶/密碼8080 /椒其中我在本地運行

測試2:註釋掉management.security.enabled=false,並創建以下的配置文件,以堵塞彈簧安全:

@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(); 
} 
} 

這一步後,我看到連接到本地主機時:從瀏覽器8080 /椒我看到一個基本的身份驗證彈出,我輸入admin/admin和看椒響應,所以我的結論是我的春天安全設置是OK

現在,它的時間來運行hawt.io:

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

,現在當我打我進入本地主機的細節後hawt.io UI「連接」:8080 /椒連接(它不有任何用戶/密碼文本字段)它會將我引向hawt.io登錄屏幕。當我輸入管理員/管理員時,我看到一個「無法連接,禁止」UI消息。

我試着看到hawt.io發送到我的本地主機:8080(使用burp套件)的請求,並且我看到在看到hawt.io登錄屏幕之前,我看到很多401(未授權)響應當試圖在8080上查詢jolokia時(當然我是這麼做的,因爲它在進入管理員/管理員之前 - 所以沒有機會提前知道)。 當我進入hawtio的登錄界面後,進入admin/admin並點擊「登錄」 - 我根本沒有看到hawt.io到8080的任何請求。我只看到一個來自UI的hawt.io服務器的請求,它以403響應。所以我懷疑它的內部認證窗口是hawt.io本身,它與jolokia沒有任何關係。

所以我問的是 - 我在這個設置中缺少什麼,我應該如何配置hawt.io才能連接到我的設置?

感謝很多提前

回答

1

將jolokia主機名添加到屬性hawtio.proxyWhitelist爲我完成了這項工作。

0

嘗試增加endpoints.jolokia.sensitive=false到春季啓動application.properties

默認情況下,Spring Boot會將Jolokia視爲「敏感」資源,這可能會導致訪問Jolokia的授權錯誤。

+0

謝謝,但它沒有幫助,我看到相同的行爲。我懷疑它與hawt.io的東西,而不是春天的應用程序。如果我從瀏覽器直接連接到http:// localhost:8080/jolokia,我會看到一個基本的身份驗證彈出窗口,當我輸入admin/admin時,我可以連接。 –

相關問題