以前は、認証や文字エンコーディングなどの処理に javax.servlet.Filter を使用していました。フィルターのようなSpring MVC 3.0には、他のコントローラーが処理する前にリクエストを処理するものがありますか(フロントコントローラー)。また、コンストラクターまたはセッターによって依存関係を注入することもできます。例えば、
@Controller
public class HomeController {
@RequestMapping("/home")
public String getHomePage() {
return "home";
}
}
public class Authentication {
private Foo foo;
public void setFoo(Foo foo) {
this.foo = foo;
}
// filter the url "/home"
public String authenticate() {
if (foo.authenticated()) {
return toHomeController;
}
return toErrorController;
}
}
/home またはその他の URL からの要求を処理する前に、ユーザーを承認する必要があります。そうでない場合は、/error などの他の URL にリダイレクトする必要があります。