gpt4 book ai didi

java.lang.NoClassDefFoundError : org/jasypt/util/text/BasicTextEncryptor

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

我定义了一个名为 CryptUrl 的类,它使用 BasicTextEncryptor 来加密和解密字符串。我尝试在 servlet 中调用 decrypt 函数,但最终出现错误

java.lang.NoClassDefFoundError: org/jasypt/util/text/BasicTextEncryptor

这是我的 Crypt 类:

import org.jasypt.util.text.BasicTextEncryptor;

public class CryptUrl {
static String myEncryptionPassword ="key";
static String message ="message";

public static String encrypt(String text) {
try {
BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
textEncryptor.setPassword(myEncryptionPassword);
String myEncryptedPassword = textEncryptor.encrypt(text);

return myEncryptedPassword;

} catch (Exception e) {
return null;
}
}

public static String decrypt(String text) {
try {
BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
textEncryptor.setPassword(myEncryptionPassword);
String plainText = textEncryptor.decrypt(text);
return plainText;
} catch (Exception e) {
System.out.println(e);
return null;
}
}
}

这是我调用该函数的 servlet

public class Download extends HttpServlet {

private static final long serialVersionUID = 1L;
public static final int TAILLE_TAMPON = 10240; // 10ko
public static String message ;

public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
/*
* Lecture du paramètre 'chemin' passé à la servlet via la déclaration
* dans le web.xml
*/
String chemin = this.getServletConfig().getInitParameter( "chemin" );

/*
* Récupération du chemin du fichier demandé au sein de l'URL de la
* requête
*/
String fichierRequis = request.getPathInfo();
Path p = Paths.get(fichierRequis);
// System.out.println(p.subpath(0, p.getNameCount()));
message =CryptUrl.decrypt(p.subpath(0, p.getNameCount()).toString());

/* Vérifie qu'un fichier a bien été fourni */
if ( fichierRequis == null ) {
/*
* Si non, alors on envoie une erreur 404, qui signifie que la
* ressource demandée n'existe pas
*/
response.sendError( HttpServletResponse.SC_NOT_FOUND );
return;
}

/*
* Décode le nom de fichier récupéré, susceptible de contenir des
* espaces et autres caractères spéciaux, et prépare l'objet File
*/


fichierRequis = URLDecoder.decode( fichierRequis, "UTF-8" );
File fichier = new File( chemin, fichierRequis);

/* Vérifie que le fichier existe bien */
if ( !fichier.exists() ) {
/*
* Si non, alors on envoie une erreur 404, qui signifie que la
* ressource demandée n'existe pas
*/
response.sendError( HttpServletResponse.SC_NOT_FOUND );
return;
}

/* Récupère le type du fichier */
String type = getServletContext().getMimeType( fichier.getName() );

/*
* Si le type de fichier est inconnu, alors on initialise un type par
* défaut
*/
if ( type == null ) {
type = "application/octet-stream";
}

/* Initialise la réponse HTTP */
response.reset();
response.setBufferSize( TAILLE_TAMPON );
response.setContentType( type );
response.setHeader( "Content-Length", String.valueOf( fichier.length() ) );
response.setHeader( "Content-Disposition", "attachment; filename=\"" + fichier.getName() + "\"" );

/* Prépare les flux */
BufferedInputStream entree = null;
BufferedOutputStream sortie = null;
try {
/* Ouvre les flux */
entree = new BufferedInputStream( new FileInputStream( fichier ), TAILLE_TAMPON );
sortie = new BufferedOutputStream( response.getOutputStream(), TAILLE_TAMPON );

/* Lit le fichier et écrit son contenu dans la réponse HTTP */
byte[] tampon = new byte[TAILLE_TAMPON];
int longueur;
while ( ( longueur = entree.read( tampon ) ) > 0 ) {
sortie.write( tampon, 0, longueur );
}
} finally {
sortie.close();
entree.close();
}
}

最佳答案

确保您的类路径中有以下 jar。但是版本可能不同

    commons-codec-1.1.jar
commons-lang-2.1.jar
jasypt-1.6.jar

关于java.lang.NoClassDefFoundError : org/jasypt/util/text/BasicTextEncryptor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39247609/

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