seguridad en jar

Tengo una pregunta, hay alguna manera de dar seguridad a un archivo jar, que no se pueda ver su contenido o extraer sus clases algo hasi como un exe que solo la aplicacion pueda tener acceso a sus clases ?

saludos

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

Ofuscación, firma digital

Hay dos cosas que puedes hacer: uno es firmar el JAR de manera digital, para lo cual necesitas tu certificado digital y ya que tienes el JAR como lo vas a publicar, lo firmas, eso hace una versión del JAR donde viene la firma de cada clase de manera que el runtime la puede verificar al momento de cargar el JAR y con eso se puede estar seguro que no ha habido modificaciones a las clases contenidas ahí.

En cuanto a que no te vayan a descompilar tu código pues lo recomendable es usar un ofuscador de código, hay varios gratuitos y de paga, busca algo como ProGuard. El usuario seguirá necesitando del JRE para correr tu aplicación pero si alguien descomprime el JAR y quiere descompilar las clases, no sabrá por dónde empezar porque todas las clases se llama a.class, b.class, ab.class etc y los métodos de cada clase son a() b() c() d() etc.

lo que pasa es que estoy

lo que pasa es que estoy aprendiendo jpa y desarrollando una aplicacion de practica pero no entiendo ya que la configuraciòn del persistence.xml lo guarda en el jar, osea cualquiera lo descomprime y ve el acceso a la base de datos usuario contaseña y base de datos o estoy equivocado.
saludos

Imagen de benek

Configura un datasource

Configura un datasource en tu servidor de aplicaciones, así solo tienes que obtenerlo en tu aplicación y ya traerá la configuración de conexión.

Acá un ejemplo con JBoss:

Saludos.

Javier Ramírez Jr.

Imagen de ezamudio

tipo de app?

El jar es para una aplicación en un servidor o para una aplicación que corre el usuario en su compu (Swing o algo asi)?

La aplicacion la corre el

La aplicacion la corre el usuario en su compu, tres usuarios en total tienen acceso a una base de datos osea tres compu usuarios y una compu de servidor de datos, ahora quiero implentar JPA con swing pero al crear el jar esta el persistence.xml accesible a cualquiera de los usuarios cosa no segura o me equivoco? aclaro soy novato en esto.

Imagen de ezamudio

Pedir auth a usuarios

Lo recomendable es que al arrancar la aplicación le pidas usuario y password a los usuarios, y pongas esos valores que te dan en algun lugar (no sé ahorita en dónde) para que después al leer el persistence.xml se resuelvan variables del archivo a los valores que puso el usuario.

Con Spring se resuelve usando el Spring-EL pero no sé con puro JPA cómo lo harías sin tener que editar el persistence.xml; probablemente haya una manera de que se cargue el persistence.xml sin datos de usuario/password sino que se le pasen al componente que lee el archivo?