首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使Quarkus使用Apereo CAS或SAML2身份验证

如何使Quarkus使用Apereo CAS或SAML2身份验证
EN

Stack Overflow用户
提问于 2020-10-03 21:11:13
回答 1查看 372关注 0票数 1

我是一名计算机科学专业的学生,在过去的一年里使用Quarkus完成了几个项目。我最近收到了一个新项目,其中我必须创建一个rest API。因为我必须在短时间内做很多事情,所以我使用Quarkus为我的web服务使用RESTEasy轻松地完成这项工作。

但是这个应用程序接口必须通过使用带有CAS或SAML2协议的Apereo来验证用户身份。此外,我没有使用Java安全插件的经验。

我还搜索了如何通过使用keycloak、Apereo Jboss client、Apero Quarkus来处理这个问题,或者使用Spring boot client之类的服务来完成身份验证工作。但我不知道哪一个会是最好的,甚至不知道哪一个会真正起作用。

你在这方面有什么经验吗?或者我可以使用什么来使我的Quarkus API与Apereo一起工作?

非常感谢您的时间和帮助,

诚挚的问候,

托马斯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-01 16:20:35

很抱歉来晚了,但我真的做了夸库-阿帕雷奥的整合。基本上,我添加了quarkus-undertow扩展,以便能够使用src/main/resources/META-INF/web.xml。我还使用org.jasig.cas.client: cas -client-core:3.6.1来实现cas过滤器。我的web.xml包含如下内容:

代码语言:javascript
复制
<context-param>
    <param-name>serverName</param-name>
    <param-value>${cas.redirect.url}</param-value>
</context-param>

<filter>
    <filter-name>CAS Authentication Filter</filter-name>
    <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
    <init-param>
        <param-name>casServerLoginUrl</param-name>
        <param-value>${cas.login.url}</param-value>
    </init-param>
    <init-param>
        <param-name>ignorePattern</param-name>
        <param-value>/proxy/</param-value>
    </init-param>
    <init-param>
        <param-name>ignoreUrlPatternType</param-name>
        <param-value>CONTAINS</param-value>
    </init-param>
    <async-supported>true</async-supported>
</filter>

<filter>
    <filter-name>CAS Validation Filter</filter-name>
    <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
    <init-param>
        <param-name>casServerUrlPrefix</param-name>
        <param-value>${cas.base.url}</param-value>
    </init-param>
    <async-supported>true</async-supported>
</filter>

<filter>
    <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
    <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
    <async-supported>true</async-supported>
</filter>

<filter-mapping>
    <filter-name>CAS Authentication Filter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<filter-mapping>
    <filter-name>CAS Validation Filter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<filter-mapping>
    <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Saml集成类似,只需使用SAML过滤器即可。有关配置选项的更多信息,请参阅java-cas-client

题外话,为什么需要通过归档存储对API进行鉴权?它会将您重定向到CAS登录窗口,然后将您重定向回来。您不能通过postman或curl使用此API。此外,API不存储有关用户的任何会话,因此每次都会发生这种重定向动作。这不是保护API的方式。网页或Web应用程序是的,但不是API。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64184661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档