小编xro*_*oss的帖子

javax.crypto.AEADBadTagException:AES/GCM/无填充加密器/解密器的标签不匹配

几天来我一直在试图解决这个问题。加密方法工作正常,但在解密测试期间我收到以下异常。特别是我正在使用:AES/GCM/NoPadding. 据我所知T_LEN应该是IV_LENGTH*8字节数组表示。该错误真正显示在ExampleCryptografer.java解密方法中: byte[] decryptedText = cipher.doFinal(decoded);

javax.crypto.AEADBadTagException: Tag mismatch!

at java.base/com.sun.crypto.provider.GaloisCounterMode.decryptFinal(GaloisCounterMode.java:623)
at java.base/com.sun.crypto.provider.CipherCore.finalNoPadding(CipherCore.java:1116)
at java.base/com.sun.crypto.provider.CipherCore.fillOutputBuffer(CipherCore.java:1053)
at java.base/com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:853)
at java.base/com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:446)
at java.base/javax.crypto.Cipher.doFinal(Cipher.java:2202)
at com.example.ExampleCryptografer.decrypt(ExampleCryptografer.java:61)
at com.example.ExampleCryptograferTest.decrypt_givenEncryptedExample_ShouldSucceed(ExampleCryptograferTest.java:21)
Run Code Online (Sandbox Code Playgroud)

这就是我的测试的样子:

public class ExampleCryptographerTest {

private ExampleCryptographer objectUnderTest = new ExampleCryptographer("knownKeyForTest=");

@Test
public void decrypt_givenEncryptedExample_ShouldSucceed() {
    String example = "afasfdafafa=";
    String encodedExample = objectUnderTest.encrypt(example);

    String result = objectUnderTest.decrypt(encodedExample);

    assertThat(result).isNotNull();
    assertThat(result.length()).isEqualTo(48);
}

@Test
public void encrypt_givenExample_ShouldSucceed() {
    String example = "afasfdafafa=";

    String result = objectUnderTest.encrypt(example);

    assertThat(result).isNotNull();
    assertThat(result.length()).isEqualTo(48);
}

@Test
public …
Run Code Online (Sandbox Code Playgroud)

java encryption aes-gcm

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

docker登录nexus连接被拒绝

我已经设置了我的docker repo,下面是docker-compose.yml文件:

version: '2'

networks:
  prodnetwork:
    driver: bridge

services:
 nexus:
  image: sonatype/nexus3
  volumes:
   - "nexus-data:/nexus-data"
  ports:
   - "8081:8081"
   - "8082:8082"
   - "8083:8083"
   - "8084:8084"
   - "8085:8085"
   - "8086:8086"
   - "8087:8087"
   - "8088:8088"
  networks:
   - prodnetwork

 jenkins:
  image: library/jenkins
  ports:
    - "8080:8080"
  networks:
    - prodnetwork
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - /usr/bin/docker:/usr/bin/docker
    - /opt/jenkins/:/var/lib/jenkins/
  depends_on:
    - nexus
    - sonar
  environment:
    - NEXUS_PORT=8081
    - SONAR_PORT=9000
    - SONAR_DB_PORT=5432

 sonar:
  build: ./sonar
  ports:
   - "9000:9000"
   - "5432:5432"
  networks:
    - prodnetwork
  depends_on:
    - sonardb
  environment: …
Run Code Online (Sandbox Code Playgroud)

centos docker docker-compose nexus3

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

junit测试中的MockMVC - 检查List <Object>和Map <Enum,Object>的结果

我有mockMVC的问题和用它编写的测试.我的测试失败了.我有两种测试方法:

@Test
public void getPersonsForApiConsumerTest() throws Exception {
    mockMvc.perform(get(getUri("/consumers/1/persons")))
            .andExpect(status().isOk())
            .andExpect(jsonPath("$", hasSize(2)))
            .andExpect(jsonPath("$[1].name", is("Ligza")))
            .andExpect(jsonPath("$[2].name", is("Vekrir")));

}

@Test
public void getPersonsForApiConsumerMapTest() throws Exception {
    mockMvc.perform(get(getUri("/consumers/1/persons/map")))
            .andExpect(status().isOk())
            .andExpect(jsonPath("$[1].name", is("Verkir")))
            .andExpect(jsonPath("$[2].name", is("Ligza")));
}
Run Code Online (Sandbox Code Playgroud)

具有映射的Rest方法:

 @RequestMapping(value = "/{consumerId}/persons")
    public List<PersonDto> getPersonsForApiConsumer(@PathVariable("consumerId") Integer consumerId) throws IOException {
        return apiConsumerService.getPersonsListForApiConsumer(consumerId);
    }

    @RequestMapping(value = "/{consumerId}/persons/map")
    public Map<ApiConsumerPersonRole, List<Person>> getPersonsForApiConsumerMap(@PathVariable("consumerId") Integer consumerId) throws IOException {
        return apiConsumerService.getPersonsMapForApiConsumer(consumerId);
    }
Run Code Online (Sandbox Code Playgroud)

通过Postman我可以获得这样的数据:

列表:

[
    {
        "id": 1,
        "firstName": "Ligza",
        "lastName": "Zetasor",
        "role": "REPRESENTATIVE",
        "phone": "123123123",
        "email": "ligza.zetasor@gmail.com"
    },
    {
        "id": …
Run Code Online (Sandbox Code Playgroud)

java testing junit spring mockmvc

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

MyBatis中的XML ResultMap与关联

我看到这个问题在Google或Stack上非常奇怪。让我解释。

我的界面方法的注释中有结果图。仅在这种特殊情况下,我才需要动态查询,这就是我决定在xml文件中为接口编写整个映射器的原因。下面,我粘贴整个文件。选择查询应该可以,但是我遇到了一些困难<resultMap>

在不同的Web站点上,我一直在寻找关于此结果图的一对一,一对多,多对一关联和构造的良好解释。

我看到有某种可能性将其分成子查询,子结果映射。但是我已经使用myBatis注释完成了此操作,并且我想使用它。您能指导我,应该如何构造resultMap?我看不到需要构造函数,区分<collection>符,但它仍在大喊……(这就是为什么我加了标记)-IntelliJ强调了整个<resultMap>说法:"The content of element type "resultMap" must match "(constructor?,id*,result*,association*,collection*,discriminator?)"

我知道这似乎很明显,但是我完全不知道如何正确地做。请帮我。

xml映射器文件:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="pl.net.manager.dao.UsageCounterDAO">
    <select id="getUsageCounterList" resultType="pl.net.manager.domain.UsageCounter"
            resultMap="getUsageCounterListMap">
        SELECT * FROM usage_counter WHERE
        <if test="apiConsumerIdsList != null">
            api_consumer IN
            <foreach item="item" index="index" collection="apiConsumerIdsList"
                     open="(" separator="," close=")">
                #{item}
            </foreach>
            AND
        </if>
        <if test="serviceConsumerIdsList != null">
            service IN
            <foreach item="item" index="index" collection="serviceConsumerIdsList"
                     open="(" separator="," close=")">
                #{item}
            </foreach>
            AND
        </if>
        <if test="dateFrom != …
Run Code Online (Sandbox Code Playgroud)

java associations dynamicquery xmlmapper mybatis

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

liquibase 中的 Postgres Dropping 函数显示错误

FUNCTION在xml文件中有这样的:

<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd
        http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">

    <changeSet id="1.0-procedures" author="api-manager">

        <sql>
            DROP FUNCTION IF EXISTS proc_api_consumer_audit_insert;
        </sql>

        <createProcedure>
            CREATE FUNCTION proc_api_consumer_audit_insert()
            RETURNS TRIGGER AS $api_consumer_audit$
            BEGIN
                INSERT INTO api_consumer_audit(LOREM_IPSUM) VALUES(LOREM_IPSUM);
                RETURN NEW;
            END;
            $$ LANGUAGE plpgsql;
        </createProcedure>

        <rollback>
            DROP FUNCTION IF EXISTS proc_api_consumer_audit_insert;
        </rollback>
    </changeSet>
</databaseChangeLog>
Run Code Online (Sandbox Code Playgroud)

更新期间的 liquibase 显示以下错误:

[ERROR] Failed to execute goal org.liquibase:liquibase-maven-plugin:3.5.3:update (default-cli) on project api-manager: Error setting up or running Liquibase: Migration failed for change set db/dev/changelog/1.0/1.0-procedures.xml::1.0-procedures::api-manager:
[ERROR] Reason: …
Run Code Online (Sandbox Code Playgroud)

postgresql function liquibase

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