spark-java: before filter 中的路径排除
spark-java: Path exclusion in before filter
我是 spark-java 框架的新手,我想知道是否有人有好的解决方案来检查用户是否已通过身份验证。
如果用户未通过身份验证,我想重定向到“/login”。
在我看来,最好的解决方案是在前置过滤器中。但是我们有一个重定向循环。
public static void main(String[] args) {
before((req, res) -> {
User usr = new User("DUMMY");
if (!Authentication.isUserAuthenticated(usr)) {
res.redirect("/login");
}
});
get("/login", (req, res) -> {
return "Sir, your credentials please!";
});
get("/", (req, res) -> {
return "Welcome!";
});
}
有没有办法排除特定路径?或者您有更好的解决方案的建议吗?
此致,
菲利普
我认为更好的方法是停止使用 http 未授权状态而不是重定向。你可以通过用 halt(401)
替换之前过滤器中的重定向来做到这一点。然后你应该在你的客户端代码中处理这个状态代码。您是否为您的客户端代码使用任何框架,例如 AngularJs ?
我是 spark-java 框架的新手,我想知道是否有人有好的解决方案来检查用户是否已通过身份验证。 如果用户未通过身份验证,我想重定向到“/login”。 在我看来,最好的解决方案是在前置过滤器中。但是我们有一个重定向循环。
public static void main(String[] args) {
before((req, res) -> {
User usr = new User("DUMMY");
if (!Authentication.isUserAuthenticated(usr)) {
res.redirect("/login");
}
});
get("/login", (req, res) -> {
return "Sir, your credentials please!";
});
get("/", (req, res) -> {
return "Welcome!";
});
}
有没有办法排除特定路径?或者您有更好的解决方案的建议吗?
此致, 菲利普
我认为更好的方法是停止使用 http 未授权状态而不是重定向。你可以通过用 halt(401)
替换之前过滤器中的重定向来做到这一点。然后你应该在你的客户端代码中处理这个状态代码。您是否为您的客户端代码使用任何框架,例如 AngularJs ?