Shiro 是一個高性能的 Java 安全框架,擁有很多功能,如認(rèn)證、授權(quán)、會話管理等。但有時候我們在使用 Shiro 時會遇到一些問題,例如放行靜態(tài)資源文件,如 CSS、JS、圖片等。本文將介紹如何通過配置 Shiro 來放行 CSS。
在 Shiro 中,我們可以通過配置 shiro.ini 文件來指定 URL 的訪問規(guī)則。在該文件中的 [urls] 部分,將 URL 與相應(yīng)的權(quán)限進行映射。如果 URL 不需要權(quán)限,可以使用“anon”表示。例如: [urls] /login = anon /logout = logout /** = authc 其中,“/**”表示所有的 URL 都需要進行認(rèn)證操作(authc)。但是這樣的話,靜態(tài)資源文件也會被攔截,導(dǎo)致頁面樣式丟失。因此,我們需要對 CSS 進行放行。
通過在 [urls] 部分添加 CSS 相關(guān)的配置,即可實現(xiàn)放行。例如:
[urls] /login = anon /logout = logout /css/** = anon /** = authc
在上述配置中,“/css/**”表示所有的 CSS 文件都不需要進行認(rèn)證操作,即可以直接訪問。
當(dāng)然,也可以使用代碼的方式來進行放行 CSS。例如:
@Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/css/**").permitAll() .anyRequest().authenticated() .and() .formLogin() .loginPage("/login") .defaultSuccessUrl("/") .permitAll() .and() .logout() .logoutSuccessUrl("/") .permitAll(); }
上述代碼中,使用了 Spring Security 的配置方式,其中,“/css/**”表示所有的 CSS 文件都不需要進行身份驗證。
通過以上的方式,即可實現(xiàn)放行 CSS,讓頁面展示更加美觀。