gpt4 book ai didi

java - 如何在没有 web.xml 的情况下应用 ContainerRequestFilter?

转载 作者:太空宇宙 更新时间:2023-11-04 09:15:00 26 4
gpt4 key购买 nike

我目前正在使用 jersey 2.27 和 jetty 9.4 制作 RESTapi。在此服务器中,我尝试应用过滤器:

@AuthenticationEndpoint.Secured
@Provider
@Priority(Priorities.AUTHENTICATION)
public class AuthenticationFilter implements ContainerRequestFilter {

private static final String REALM = "example";
private static final String AUTHENTICATION_SCHEME = "Bearer";

@Override
public void filter(ContainerRequestContext requestContext) throws IOException {

//Authentication code
}

private boolean isTokenBasedAuthentication(String authorizationHeader) {

}

private void abortWithUnauthorized(ContainerRequestContext requestContext) {


}

private void validateToken(String token) throws Exception {

}
}

但是,此过滤器不会被触发。

这是我的端点:

@Path("/authenticate")
public class AuthenticationEndpoint {

Machine machine = Machine.getInstance();

@NameBinding
@Retention(RUNTIME)
@Target({TYPE, METHOD})
public @interface Secured { }



@POST
@Path("/authenticate")
@Secured
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response authenticateUser(
AuthenticationRequest authenticationRequest){

}

我没有 web.xml,我不知道如何实际触发此过滤器。有人对此有什么建议吗?我很难理解这个服务器过滤器配置。PS:我省略了方法的内容,因为我认为这太困惑了,如果认为有必要的话我当然会添加它。

最佳答案

您必须在创建应用程序时注册过滤器,例如

public class MyApplication extends ResourceConfig {
register(AuthenticationFilter.class)
// yada yada
}

关于java - 如何在没有 web.xml 的情况下应用 ContainerRequestFilter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59146179/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com