我正在创建一个简单的Jakarta EE 9应用程序.由于我自己的原因,我必须实现自己的HttpAuthenticationMechanism(我没有使用内置的HttpAuthenticationMechanism个CDIBean).

我在激活自己的HttpAuthenticationMechanism时遇到问题.在我的登录servlet中,我try 调用SecurityContext.authenticate(request, response, AuthenticationParameters)来手动处理登录,but my own HttpAuthenticationMechanism never get called. It was supposed to be called.

My own HttpAuthenticationMechanism & its annotations

@ApplicationScoped
@Alternative
@jakarta.annotation.Priority(jakarta.interceptor.Interceptor.Priority.APPLICATION)
@AutoApplySession

public class MyOwnHttpAuthenticationMechanism implements HttpAuthenticationMechanism {

    @Override
    public AuthenticationStatus validateRequest(HttpServletRequest request, HttpServletResponse response, HttpMessageContext httpMessageContext)
            throws AuthenticationException {
        
        // Never called
    }
}

As you see, I already added @Alternative and @Priority to activate the bean.

My environment:

  • 雅加达EE 9.1
  • Wildfly 26雅加达EE 9预览
  • 我还在Wildfly上把Integrated JASPI从开改为关.
  • 我的jboss网站.xml:<安全域(&T);jaspitest&lt/安全域(&T);
  • Java 11

Any helps? Thank you!

推荐答案

这就是为什么我自己的HttpAuthenticationMechanism没有被调用的原因.

Solution:改为使用安全域'other',或从jboss web中删除安全域标记.xml或您自己的安全域

Java相关问答推荐

查找最大子数组的和

try 使用Java 9或更高版本对特殊对象图进行解析时出现NullPointerException

SQlite for Android无法使用json_group_array/json_object

从技术上讲,OPC UA客户端是否可以通过转发代理将请求通过 tunel 发送到OPC UA服务器?

Java记录的不同序列化/反序列化

R.id.main给我一个红色错误,无法解析MainActivity.java中的符号main

蒙蒂霍尔比赛结果不正确

为什么Java编译器不区分不同类型的方法?

如何在Java记录中设置BigDecimal类型属性的精度?

为什么Spring Boot项目无法为基于MySQL的CRUD应用程序找到从JPARepository接口扩展的ProductRepository?

如何在构建Gradle项目时排除com.google.guava依赖项的一个变体

在学习Spring时,通过构造函数参数0表达了不满意的依赖关系

如何在JavaFX中制作鼠标透明stage

如何在我的世界中为互动增加冷却时间?

AWS Java SDK v2.x中没有setObjectAcl方法

视图被推出线性布局-Android

我的代码是线程安全的吗?[Java、CAS、转账]

在具有Quarkus Panache的PostgreSQL中将JSON数据存储为JSONB时,会将其存储为转义字符串

如何判断元素计数并在流的中间抛出异常?

读取ConcurrentHashMap中的可变对象