小编Eri*_*rik的帖子

Tomcat中的org.jasypt.exceptions.EncryptionOperationNotPossibleException

我正在使用Jasypt加密库来加密/解密某些文本.此代码嵌入在WAR文件中并部署到服务器.

在本地运行时,在单元测试中,加密/解密周期完美地运行.我使用Jetty开发应用程序.该代码在该服务器中完美运行.出于某种原因,部署到Tomcat会导致以下异常:

仅供参考,我在本地和服务器环境中都安装了强大的加密库,我使用的是最新的1.6版本(补丁级别25).

org.jasypt.exceptions.EncryptionOperationNotPossibleException

该例外没有消息.

代码是完全对称的.我把它贴在这里检查.以下是相关位:

我找到了一个旧的Nabble帖子,其中一个用户有一个非常类似的问题.代码在除Tomcat内部以外的任 没有解决方案.

任何见解都将非常受欢迎.

**更新:**在我的本地系统上运行Tomcat,它似乎工作.所以我的服务器有一些东西.在服务器上,我在Windows Server 2008上使用64位JVM.我在本地使用32位JVM(由于我的系统有点旧).我想知道这是否与这个问题有关.

public void initializeService() {
    binaryEncryptor = new BasicBinaryEncryptor();
    binaryEncryptor.setPassword(keyBase64);
}

@Override
public <T extends Serializable> String simpleEncrypt(T objectToEncrypt) throws EncryptionException {
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    try {
        ObjectOutputStream oos = new ObjectOutputStream(bos);
        oos.writeObject(objectToEncrypt);

        byte[] bytes = binaryEncryptor.encrypt(bos.toByteArray());
        return new String(Base64.encodeBase64(bytes));
    } catch (IOException e) {
        LOGGER.error("failed to encrypt String: " + e.getMessage());
        throw new EncryptionException(e.getMessage(), e);
    } catch (Exception e) {
        LOGGER.error("failed to encrypt String: …
Run Code Online (Sandbox Code Playgroud)

java tomcat jasypt

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

spring security(3.0.x)和用户模仿

在我的Web应用程序中,有时经过身份验证的管理员可能想要冒充系统的另一个有效用户而无需知道该用户的密码.

如何使用Spring Security为管理员用户提供模拟系统正常(非管理员)用户的能力?

Spring Security文档对此保持沉默,我无处可寻.当然有人必须解决这个问题.

谢谢!

java impersonation spring spring-security

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

在Max OS X上增加SQuirreL SQL的堆大小

我在Max OS X上运行SQuirreL SQL(2.6.8).

尝试创建表脚本时,我的堆空间不足.

如何配置SQuirreL SQL以启动更高的JVM堆大小?

java macos squirrel-sql

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

使用32位JDK的Windows x64上的Tomcat

希望有人可以提供帮助.

问题: 我无法使用32位JDK在64位窗口上启动Tomcat 5.5作为Windows服务.

详细信息: 我使用64位JDK在Windows Server 2008(x64)上运行Tomcat 5.5作为服务已有一段时间了.

我被迫在这个64位机器上安装一个32位JDK,所以我可以使用Java JAI库(没有64位JAI版本).我必须使用这个32位JDK运行Tomcat.

如果我使用/bin/startup.bat启动它,我可以使用32位JDK运行Tomcat

问题是,它不会作为Windows服务启动.我正在使用Tomcat捆绑的procrun可执行文件.有没有人在64位计算机上使用32位JDK作为服务启动Tomcat成功?

感谢您的专业知识.

java tomcat win64 windows-services

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

Jersey GET请求可以返回多态实体吗​​?

我有一个Resource类,试图返回一个接口类型,比如说"Shape":

public interface Shape {...}

@XmlRootElement
public class Circle implements Shape {...}

@Path("/api/shapes")
public class ShapeResource {
    @GET
    @Path("/{shapeId}")
    public Shape get(@PathParam("shapeId") String shapeId) {
        ....
        return new Circle();
    }
}
Run Code Online (Sandbox Code Playgroud)

试验上面的内容,我看到服务器正在返回XML,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<circle>
...
</circle>
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.问题是,客户端不知道如何取消编组.我越来越:

com.sun.jersey.api.client.ClientHandlerException: A message body for Java type, interface Shape, and MIME media type, application/xml, was not found
Run Code Online (Sandbox Code Playgroud)

给定一个WebResource,并要求Shape.class的实体类型会导致异常.

服务器似乎正在做正确的事情.我一直在努力争取如何让客户端反序列化这个类.我甚至尝试包装接口,我真的试图通过这里概述的包装器:https://jaxb.dev.java.net/guide/Mapping_interfaces.html.那也行不通.

我的客户端代码如下所示:

    ClientResponse response = get(wr, ClientResponse.class); // wr == WebResource
    try {
        return response.getEntity(Shape.class); // <-- FAIL       
    } …
Run Code Online (Sandbox Code Playgroud)

java rest jax-rs jersey

6
推荐指数
1
解决办法
2096
查看次数

关于jquery,闭包和可能的内存泄漏

我已经阅读了很多关于如何在各种版本的IE中创建内存泄漏的内容.一些很棒的信息可以在这里找到:

http://msdn.microsoft.com/en-us/library/bb250448%28VS.85%29.aspx

http://laurens.vd.oever.nl/weblog/items2005/closures/

使用JQuery的闭包是一种非常常见的做法.关于IE和内存泄漏,我找不到任何与JQuery的事件模型(大量使用关闭)有关的文章.上面发布的第二篇文章是一种在使用闭包时避免内存泄漏的策略.

JQuery是否已经实施了类似于文章中概述的策略,以帮助清理使用闭包时潜在的泄漏?或者是我必须注意和代码的东西?

例如,

在IE6/7中创建内存泄漏:

function foo(value) {   
    var bar = document.getElementById("selector");
    bar.attachEvent("onclick", 
        // closure
        function() {
            alert(value); // reference to 'value' from outer function scope   
        }
    ); 
}

以上示例的以下JQuery版本是否会导致IE6/7中的内存泄漏?

function foo(value) {   
    $('#selector').click(
        // closure
        function() {
            alert(value); // reference to 'value' from outer function scope   
        }
    ); 
}

jquery internet-explorer memory-leaks

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

使用已知架构保存空 DataFrame (Spark 2.2.1)

是否可以使用已知模式保存一个空的 DataFrame,以便将模式写入文件,即使它有 0 条记录?

def example(spark: SparkSession, path: String, schema: StructType) = { 
  val dataframe = spark.createDataFrame(spark.sparkContext.emptyRDD[Row], schema) 
  val dataframeWriter = dataframe.write.mode(SaveMode.Overwrite).format("parquet") 
  dataframeWriter.save(path) 

  spark.read.load(path) // ERROR!! No files to read, so schema unknown 
} 
Run Code Online (Sandbox Code Playgroud)

apache-spark parquet databricks

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

Jackson用Feign无法反序列化Spring的org.springframework.data.domain.Sort

问题:一个假客户端对 Spring boot Rest API 进行 API 调用,返回Page<T>无法反序列化sort该页面的属性。

  • Spring Boot:2.3.3.发布
  • Spring Cloud Feign:2.2.5.RELEASE

com.fasterxml.jackson.databind.exc.InvalidDefinitionException:无法构造实例org.springframework.data.domain.Sort(不存在创建者,如默认构造函数):无法从[来源:(BufferedReader);的对象值(不基于委托或基于属性的创建者)反序列化;行:1,列:238](通过参考链:org.springframework.cloud.openfeign.support.PageJacksonModule$SimplePageImpl["sort"])

不知道为什么注册PageJacksonModule似乎不支持这一点。

给定一个手动配置的 Feign 客户端:

public class TelematicsConfig {

  private String host;

  ObjectMapper provideObjectMapper() {
    return new ObjectMapper()
        .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
        .setPropertyNamingStrategy(SnakeCaseStrategy.SNAKE_CASE)
        .registerModule(new PageJacksonModule());
  }

  @Bean
  TelematicsClient provideTelematicsClient() {
    return Feign.builder()
        .client(new OkHttpClient())
        .encoder(new JacksonEncoder(provideObjectMapper()))
        .decoder(new JacksonDecoder(provideObjectMapper()))
        .logger(new Slf4jLogger(TelematicsClient.class))
        .logLevel(Logger.Level.FULL)
        .target(TelematicsClient.class, host);
  }

}
Run Code Online (Sandbox Code Playgroud)

客户本身:

public interface TelematicsClient {

  @RequestLine("GET /api/v1/telematics/devices")
  Page<TelematicsDevice> getDevices();

}
Run Code Online (Sandbox Code Playgroud)

当调用这个我得到:

2020-09-16 12:38:49.707 ERROR 96244 --- …
Run Code Online (Sandbox Code Playgroud)

java spring-boot spring-cloud-feign feign openfeign

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

scala类型类具有更高的kinded类型和方差

我有一个与此非常类似的问题:Scala更高的kinded类型方差

然而,这有点不同,嗯,它不编译(scala 2.11.8).

基本思想是采用一系列"事物".如果数组为空,返回某种类型的默认值(例如Boolean,Option,List[Int]),否则就阵列上的工作,并产生一个结果.结果和默认值具有相同的类型.

我遇到的挑战是让这个结果适用于广泛的结果类型.

这是一个人为的例子:

  trait NullGuard[F[_]] {
    def nullGuard[A, B](arr: Array[A], default: F[B])(expr: => F[B]): F[B] =
      if (arr == null || arr.length == 0) default else expr
  }
Run Code Online (Sandbox Code Playgroud)

让我们创建一个返回Option的实现:

  implicit def optionNullGuard[F[X] <: Option[X]]: NullGuard[F] = new NullGuard[F]() {}
Run Code Online (Sandbox Code Playgroud)

以上编译,但以下尝试使用上述类型不会:

  def returnsOption[F[_], A, B](arr: Array[A])(implicit ng: NullGuard[F]): Option[B] = {
    ng.nullGuard(arr, None) {
      // sample work
      if (arr.length % 2 == 0) Option(1) else None
    }
  }
Run Code Online (Sandbox Code Playgroud)

我得到以下编译错误:

type mismatch; …
Run Code Online (Sandbox Code Playgroud)

types scala typeclass higher-kinded-types

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