小编rig*_*gon的帖子

Spring Security:将 OAuth2 声明与角色映射以保护资源服务器端点

我正在使用 Spring Boot 设置资源服务器并保护我使用 Spring Security 提供的 OAuth2 的端点。所以我正在使用 Spring Boot 2.1.8.RELEASE,例如使用 Spring Security 5.1.6.RELEASE

作为授权服务器,我使用 Keycloak。资源服务器中身份验证、颁发访问令牌和验证令牌之间的所有过程都正常工作。下面是一个发行和解码令牌的例子(有一些部分被剪掉了):

{
  "jti": "5df54cac-8b06-4d36-b642-186bbd647fbf",
  "exp": 1570048999,
  "aud": [
    "myservice",
    "account"
  ],
  "azp": "myservice",
  "realm_access": {
    "roles": [
      "offline_access",
      "uma_authorization"
    ]
  },
  "resource_access": {
    "myservice": {
      "roles": [
        "ROLE_user",
        "ROLE_admin"
      ]
    },
    "account": {
      "roles": [
        "manage-account",
        "manage-account-links",
        "view-profile"
      ]
    }
  },
  "scope": "openid email offline_access microprofile-jwt profile address phone",
}

Run Code Online (Sandbox Code Playgroud)

如何配置 Spring Security 以使用访问令牌中的信息为不同端点提供条件授权?

最终我想写一个这样的控制器:

{
  "jti": "5df54cac-8b06-4d36-b642-186bbd647fbf",
  "exp": 1570048999,
  "aud": [ …
Run Code Online (Sandbox Code Playgroud)

rest spring authorization spring-security spring-boot

25
推荐指数
4
解决办法
1万
查看次数

将二进制数据(从文件)读入结构

我正在从文件中读取二进制数据,特别是从zip文件中读取.(要了解有关zip格式结构的更多信息,请参阅http://en.wikipedia.org/wiki/ZIP_%28file_format%29)

我创建了一个存储数据的结构:

typedef struct {
                                            /*Start Size            Description                                 */
    int signatute;                          /*   0  4   Local file header signature = 0x04034b50                */
    short int version;                      /*  ?4  2   Version needed to extract (minimum)                     */
    short int bit_flag;                     /*  ?6  2   General purpose bit flag                                */
    short int compression_method;           /*  ?8  2   Compression method                                      */
    short int time;                         /*  10  2   File last modification time                             */
    short int date;                         /*  12  2   File last modification date                             */
    int crc;                                /* …
Run Code Online (Sandbox Code Playgroud)

c zip byte

12
推荐指数
3
解决办法
1万
查看次数

如何编写跨平台程序?

我搜索了一些关于跨平台编程开发的文献,但我找不到真正好的东西.

我不是像Java那样寻找用于跨平台的虚拟机.

有关于此的书籍或文献吗?

cross-platform

6
推荐指数
2
解决办法
9346
查看次数

MIPS中的递归

我想在MIPS的程序集中实现一个递归程序.更具体地说,我想实现众所周知的Fibonacci函数.

这是C中的实现:

int fib(int n) {
    if(n<2)
        return 1;
    return fib(n-1)+fib(n-2);
}
Run Code Online (Sandbox Code Playgroud)

recursion assembly mips

5
推荐指数
1
解决办法
3万
查看次数

具有依赖项的Keycloak扩展

我正在创建具有依赖项的Keycloak扩展。我pom.xml像这样添加条目:

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20160810</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

然后我将其部署到Keycloak:

mvn clean install wildfly:deploy
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,出现了错误:

org.jboss.resteasy.spi.UnhandledException: java.lang.NoClassDefFoundError: org/json/JSONObject
Caused by: java.lang.NoClassDefFoundError: org/json/JSONObject
Caused by: java.lang.ClassNotFoundException: org.json.JSONObject from [Module "deployment.keycloak-authenticator.jar" from Service Module Loader]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:198)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:412)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:400)
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
    ... 66 more
Run Code Online (Sandbox Code Playgroud)

如何在Keycloak中向扩展添加依赖项?

java dependencies maven wildfly keycloak

5
推荐指数
2
解决办法
1818
查看次数

在 JDK 16 中使用 PowerMock

Java反射正变得越来越受限:

  • 直到 Java 8 允许所有操作
  • 从 Java 9 到 15 开始,您仍然可以执行操作,但您会收到警告
  • 从 Java 16 开始,模块之间的操作被禁止(好吧,通过传递给 JVM 的一些特殊参数仍然可以)

当使用严重依赖反射的库时,这是一个严重的问题,例如在测试中使用它来模拟对象的PowerMock 。

我创建了这个简单的例子来说明这个问题。这里是pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>Powermock</name>

    <properties>
        <java.version>16</java.version>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>5.7.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-module-junit4</artifactId>
            <version>2.0.9</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-api-mockito2</artifactId>
            <version>2.0.9</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <parameters>true</parameters>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
Run Code Online (Sandbox Code Playgroud)

通过这个简单的测试SomeTest.java

package …
Run Code Online (Sandbox Code Playgroud)

java powermock maven powermockito java-16

5
推荐指数
1
解决办法
5561
查看次数

Gigaflops的处理器

我发现我的电脑有NVIDIA CUDA技术,我想测量CPU和GPU的处理能力.

我想要更深入地了解它是如何工作的,而不是搜索程序来做到这一点.我需要什么样的代码(C/C++)?

c cpu cuda gpu flops

4
推荐指数
1
解决办法
421
查看次数

参数类型?

我想知道是否可能通过Java中的参数传递类型.

让我解释一下:

假设下一个代码

class Bee {
    // Class implementation
}

class Worker extends Bee {
    // Class implementation
}


class Queen extends Bee {
    // Class implementation
}
Run Code Online (Sandbox Code Playgroud)

现在用蜜蜂对象创建一个容器

Vector<Bee> x=new Vector<Bee>();
// ...
for(i=0;i<10;i++)
    x.add(new Worker());
// ...
for(i=0;i<10;i++)
    x.add(new Queen());
Run Code Online (Sandbox Code Playgroud)

现在我想创建一个泛型方法来迭代向量并返回一个具有特定类型的蜜蜂,工人或女王的集合.这该怎么做?

编辑

我试过了

search(x,Worker.class);

static public <T extends Bee> Set<T> search(List<Bee> bees, Class<T> clazz){
    // ...
}
Run Code Online (Sandbox Code Playgroud)

我收到错误报告"方法搜索(List,Class)不适用于参数(Set,Class)".问题出在第二个参数上,因为类型不兼容.

java types arguments

2
推荐指数
2
解决办法
205
查看次数

测量一组指令的确切时间(周期数)

我的驱动器上有一些扇区读数很差.我可以衡量每个部门所需的阅读时间,然后比较好部门和坏部门的时间.

我可以使用处理器的计时器进行测量.如何在C/Assembly中编写程序来衡量每个扇区读取的确切时间?

所以程序将是这样的:

Start the timer
Read the disk sector
Stop the timer
Read the time measured by the timer
Run Code Online (Sandbox Code Playgroud)

c assembly latency

2
推荐指数
1
解决办法
6060
查看次数

默认情况下,在swing中选择文本

有什么办法可以自动默认选择的文本JTextField,并JTextAreafocusGained事件发生?

java swing focus jtextfield jtextarea

1
推荐指数
3
解决办法
356
查看次数