Micronaut 禁止所有路线

Posted

技术标签:

【中文标题】Micronaut 禁止所有路线【英文标题】:Micronaut all routes forbidden 【发布时间】:2021-12-29 00:49:04 【问题描述】:

我使用 JWT 令牌在 Micronaut 中创建了一个应用程序以确保安全

mn create-app --features=security-jwt,data-jdbc,reactor,graalvm example.micronaut.micronautguide --build=gradle --lang=java

现在我所有的路线都被禁止了。如何从 JWT 令牌检查中排除某些路由(即登录)。我尝试了不带注释和带注释 IS_ANONYMOUS

package logfetcher;

import io.micronaut.http.MediaType;
import io.micronaut.http.annotation.Controller;
import io.micronaut.http.annotation.Get;
import io.micronaut.http.annotation.Produces;
import io.micronaut.http.annotation.Produces;
import io.micronaut.security.annotation.Secured;
import io.micronaut.security.rules.SecurityRule;
@Controller("/log")
public class LogFethcerContoller



    @Get
    @Secured(
            SecurityRule.IS_ANONYMOUS   )
    @Produces(MediaType.TEXT_PLAIN)
    public String index() 
        return "Hello World";
    

    @Get("log")
    public String index1() 
        return "Hello World";
    


我在两条路线上都得到 401。 我怎样才能拥有不需要 JWT 令牌的路由。

【问题讨论】:

【参考方案1】:

我在两条路线上都得到 401。

来自micronaut-projects.github.io/micronaut-security/3.2.0/guide/#gettingStarted...

默认情况下,Micronaut 会返回 HTTP 状态未经授权 (401) 端点调用。必须通过 提供机制。

问题:

我怎样才能拥有不需要 JWT 令牌的路由。

有很多方法。

来自micronaut-projects.github.io/micronaut-security/3.2.0/guide/#securityRule...

允许匿名或匿名访问特定端点的决定 经过身份验证的用户由一组安全规则确定。

@PermitAll 是一种方法。其他的记录在上面的链接中。

【讨论】:

以上是关于Micronaut 禁止所有路线的主要内容,如果未能解决你的问题,请参考以下文章

linux 禁止所有中断

iOS之禁止所有输入法的表情

nginx通过robots.txt禁止所有蜘蛛访问(禁止搜索引擎收录)

WORD中的宏被禁止怎么办?

禁止对 Visual Studio 中的所有项目发出警告

Linux如何禁止一个网段(192.168.70.0/24)的主机访问此DNS服务器