【问题标题】:jetty osgi : securing all servlet with one securityHandlerjetty osgi:使用一个 securityHandler 保护所有 servlet
【发布时间】:2012-09-17 19:23:27
【问题描述】:

我将jetty 用作与paxweb 的osgi 捆绑包。 我想确保通过 OSGI HttpService 注册的所有 servlet 和资源都由一个通用的 SecurityHandler 保护(此外,我想使用 JAASLoginService)。 我还想将所有未经身份验证的请求重定向到单个登录页面。

是否可以配置这个场景?

【问题讨论】:

    标签: jetty osgi security pax-web


    【解决方案1】:

    如果所有 Servlet 都使用相同的 HttpContext,这是可能的。 作为具有工作 Jaas 的运行时容器,我建议使用 Apache Karaf。 它提供了所有需要的东西,包括作为 HTTPService 的 Pax Web,包括 HttpWhiteboard Extender。

    【讨论】:

    • 如何强制所有Servlet使用同一个HttpContext?
    • 好吧,一种方法是在使用 pax-web 的白板扩展器时使用相同的 HttpContext,例如 Pax-Web
    • 不避免有人直接使用httpservice.registerservlet注册servlet
    • 不,这是用户而不是容器或框架要求,因此由负责设计应用程序的用户决定是否使用一个 HttpContext。
    【解决方案2】:

    查看 Apache Felix 白板 HTTP 支持。您只需在注册表中注册过滤器,它们就会被底层 Jetty 使用:http://felix.apache.org/site/apache-felix-http-service.html

    过滤器支持的过滤器服务属性:

    pattern - Regular expression pattern to register filter with.
    contextId - Id of context to register with.
    service.ranking - Where in the chain this filter should be placed.
    init.* - Filter initialization values.
    

    我自己还没有尝试过,但很快就会...

    【讨论】:

    • 这将是使用 felix 而不是 pax-web 的替代方法,因为我们有足够的工具来选择最适合他的用户:D。我尝试了 pax-web(当然);)
    猜你喜欢
    • 1970-01-01
    • 2013-06-16
    • 1970-01-01
    • 2012-12-09
    • 2012-12-15
    • 1970-01-01
    • 2010-12-18
    • 2012-01-21
    • 2017-01-04
    相关资源
    最近更新 更多