对于我的 Java Web 应用程序,我使用 JAAS 进行身份验证和授权。任何东西都受到保护,但登录和错误页面,因此我配置了我的码头:
ConstraintMapping cm = new ConstraintMapping();
cm.setConstraint(constraint);
cm.setPathSpec("/*");
现在我想提供一个注册页面,有没有办法为路径规范定义一个例外?就我在源代码中测试和看到的而言,正则表达式在这里不起作用。
这可以通过约束松弛来解决。您可以在约束映射中添加另一个约束,这将放宽对 的更一般的约束/*
:
Constraint relaxation = new Constraint();
relaxation.setName(Constraint.ANY_ROLE);
relaxation.setAuthenticate(false);
ConstraintMapping rm = new ConstraintMapping();
rm.setConstraint(relaxation);
rm.setPathSpec("/signup");
然后您将此约束也添加到您的ContextSecurityHandler
csh.addConstraintMapping(rm);