SpringBoot Filterフィルタを実現
4159 ワード
SpringBootフィルタとSprigMVCでは大差がないことを実現します.主な違いはフィルタ登録にあります.SpringMVCはXML設定ファイルでフィルタ登録します.Spring Bootはコード注釈で登録します.次にSpringBootでFilterフィルタの実現方法を見てみましょう.
Filterフィルタの具体的な実現類
Filterフィルタを登録する
Filterフィルタの具体的な実現類
/** * */
public class AuthFilter implements Filter {
@Override
public void destroy() {
// ,
}
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)arg0;
HttpServletResponse response = (HttpServletResponse)arg1;
if(needLogin(request)) {
// Controller
response.sendRedirect("login");
return;
}
chain.doFilter(arg0, arg1);
}
@Override
public void init(FilterConfig config) throws ServletException {
//
}
/** * * @param request * @return */
private boolean needLogin(HttpServletRequest request) {
//
return false;
}
}
ここでは、権限検証用のフィルタを実装して、ユーザーがログインしているかどうかを判断します.ログインしていないと、ログイン画面に遷移します.そうでなければ、次の操作を続けます.Filterの実現と操作はSpringMVCと同じです.ここでは説明しすぎません.Filterフィルタを登録する
/** * , 、 * @author Administrator */
@Configuration
public class CustemConfigurerAdapter {
@Bean
public FilterRegistrationBean authFilterRegistrationBean() {
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.setName("authFilter");
AuthFilter authFilter = new AuthFilter();
registrationBean.setFilter(authFilter);
registrationBean.setOrder(1);
List urlList = new ArrayList();
urlList.add("/*");
registrationBean.setUrlPatterns(urlList);
return registrationBean;
}
}
上はユーザー定義の設定項目登録クラスです.@Configuration
タグを使用すると、SpringBootがこのクラスが構成クラスであることを知るために登録が必要です.@Configuration
では、ステートメント注釈@Bean
は、Springの古いバージョンで構成ファイルでビーンを宣言するのに相当する.authFilterRegistrationBean
方法はAuthFilterフィルタリング類の登録であり、urlList.add("/*")
はこのフィルタを追加するためにフィルタを必要とするURLアドレスであり、複数を追加することができる.registrationBean.setOrder(1)
は、フィルタの実行順序を設定するものである.SpringBootはorderによって小さい時から大きい順に実行されます.