Customizando o Glassfish 4 no Ubuntu 16.04

Hoje (25/08/2017), a versão do Glassfish Open Source Edition mais recente e recomendada para uso em produção é a 4.1.2, que pode ser obtida nesta página: https://glassfish.java.net/download.html

Para usar o Glassfish 4 é necessário instalar o Java 8, que pode ser obtido neste link http://www.oracle.com/technetwork/java/javase/downloads/index.html e instalado no Ubuntu seguindo este tutorial: http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html

O Glassfish padrão contém algumas vulnerabilidades de segurança e para minimizá-las é necessário customizá-lo. Os valores padrão do Glassfish estão nesta página https://docs.oracle.com/cd/E26576_01/doc.312/e24928/overview.htm#GSADG00695

Os manuais do Glassfish estão disponíveis nesta página: https://glassfish.java.net/documentation.html

Customizando o Glassfish

 

1- Foi obtido o Glassfish 4.1.2 acessando a página http://download.java.net/glassfish/4.1.2/release/glassfish-4.1.2.zip. Com isso foi baixado o arquivo glassfish-4.1.2.zip no diretório /home/aecio/Downloads.

2- Descompacte o arquivo glassfish-4.1.2.zip e altere o nome da pasta descompactada para glassfishv4.

cd /home/aecio/Downloads
unzip glassfish-4.1.2.zip
mv glassfish4/ glassfishv4

3- Algumas configurações de segurança são listadas nestas páginas:

https://glassfish.java.net/docs/4.0/security-guide.pdf

Hide Glassfish Server Information

https://community.oracle.com/thread/2362026?start=0&tstart=0

http://blog.eisele.net/2011/05/securing-your-glassfish-hardening-guide.html

https://dzone.com/articles/securing-your-glassfish

4- Mova o diretório glassfishv4 para o diretório /opt e aplique as permissões de acesso.

sudo mv /home/aecio/Downloads/glassfishv4 /opt
sudo chmod -R 700 /opt/glassfishv4
sudo chown -R root:root /opt/glassfishv4

5- Crie o arquivo /etc/init.d/glassfish com o seguinte conteúdo.

—————————- INICIO do /etc/init.d/glassfish ————————

#!/bin/bash
# chkconfig: 345 90 90
# description: glassfish (GLASSFISH) Web Server JAVA Aplication
#

### BEGIN INIT INFO
# Provides: glassfish
# Required-Start: $local_fs $network $syslog
# Should-Start: $remote_fs $named $time
# Required-Stop: $local_fs $network $syslog
# Should-Stop: $remote_fs $named
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: GLASSFISH
# Description: glassfish (GLASSFISH) Web Server JAVA Aplication
### END INIT INFO

#----------------------------------------------------
# informa se o usuario que estah rodando o comando eh root
isroot(){
MYUID=$(id | cut -d= -f2 | cut -d\( -f1)
[ $MYUID -eq 0 ] && echo YES || echo NO
}

#--------------------------------
getPID(){
PID=$(ps ax | pgrep -fl $GLASSFISHEXEC  | sed "s/^ *//" | cut --field=1 --delimiter=" ")
echo $PID > $PID_FILE
}

#--------------------------------
isRunning(){
local PID="$1"
[ -z "$PID" ] && return 1
ps -p $PID > /dev/null 2>&1 && return 0 || return 1
}

#--------------------------------
status(){
getPID

[ -f $PID_FILE ] || return 3
PID=$(cat $PID_FILE )

if [ -z "$PID" ]; then
   echo "[INFO] Glassfish is not running..." 
   return 1
fi

if isRunning $PID; then
   echo "[INFO] Glassfish is running: PID=$PID"
   return 0 
else
   echo "[INFO] Glassfish is not running..." 
   return 1
fi
}

#--------------------------------
stop(){

if [ ! -f $PID_FILE ]; then
   echo "[INFO] Glassfish is not running..."
   return 0
fi

PID=$(cat $PID_FILE )
[ -z "$PID" ] && return 0
if isRunning $PID ; then
   echo "[INFO] Stopping Glassfish..."
   kill -9 $PID
   sleep 2
   return 0
fi
}

#--------------------------------
start(){

if [ -f $PID_FILE ]; then
   PID=$(cat $PID_FILE )
   if [ -z "$PID" ]; then
      echo "[INFO] Starting Glassfish..."
      $GLASSFISH_ASADMIN start-domain
      getPID
      return 0
   fi

   if isRunning $PID; then
     echo "[INFO] Glassfish is already running. Use \"restart\""
     return 0
   else
     echo "[INFO] Starting Glassfish..."
     $GLASSFISH_ASADMIN start-domain
     getPID
     return 0
   fi
else
   echo "[INFO] Starting Glassfish..."
   $GLASSFISH_ASADMIN start-domain
   getPID
   return 0
fi
}

#--------------------------------
# MAIN
#--------------------------------

#----- Variaveis
GLASSFISHEXEC=glassfishv4
GLASSFISHDIR=/opt/glassfishv4
GLASSFISHBINDIR=/opt/glassfishv4/glassfish/bin
GLASSFISH_ASADMIN=$GLASSFISHBINDIR/asadmin
PID_FILE=/tmp/glassfish.pid


if [ $(isroot) = NO ] ; then
        echo "[ERROR] Voce deve ser root para executar este comando."
        echo "Execute o comando \"sudo $CMDLINE\""
        exit 4
fi

# Define usage string, used in more than one place.
usage="[INFO] Usage: $0 {start|stop|restart|status}"

# Check that we have one parameter: action
if [ $# -ne 1 ] ; then
  if [ $# -lt 1 -o "$1" = "" ] ; then
    echo "[ERROR] $0: action not specified"
  else
    echo "[ERROR] $0: too many parameters"
  fi
  echo "$usage"
  exit 2
fi
action="$1"



case $action in
start)
        start
        RETURN=$?
        ;;

stop)
        stop
        RETURN=$?
        ;;
restart)
        stop
        start
        RETURN=$?
        ;;

status)
        status
        RETURN=$?
        ;;
*)
        # If we don't recognize action, consider it an invalid argument.
        # If the standard adds actions we don't support, exit should be 3 for those.
        echo "[ERROR] $0: action \"$action\" not recognized"
        echo "$usage"
        exit 3
        ;;
esac
exit $RETURN

———————– FIM do /etc/init.d/glassfish ———————-

6- Dê permissão de execução ao script /etc/init.d/glassfish.

sudo chmod 755 /etc/init.d/glassfish
sudo chown root:root /etc/init.d/glassfish

7- Habilite a inicialização do Glassfish no boot do Sistema Operacional.

sudo update-rc.d -f glassfish defaults

8- Inicie o Glassfish com o comando abaixo.

sudo /etc/init.d/glassfish start

9- O log do Glassfish fica em: /opt/glassfishv4/glassfish/domains/domain1/logs/ A porta padrão do HTTP é 8080, a porta padrão do HTTPS  8181 e a porta padrão do console administrativo é 4848.

10- Por padrão, a primeira senha do usuário admin do Glassfishv4 eh vazia. Altere-a com os seguintes comandos.

sudo /opt/glassfishv4/glassfish/bin/asadmin --user admin --port 4848 change-admin-password
sudo /etc/init.d/glassfish restart

Para persistir a nova senha, execute o comando abaixo, informe o login admin e depois a nova senha.

sudo /opt/glassfishv4/glassfish/bin/asadmin login

11- Habilite o acesso remoto a interface web do Glassfish com o comando abaixo.

sudo /opt/glassfishv4/glassfish/bin/asadmin enable-secure-admin
sudo /etc/init.d/glassfish restart

12- Desabilite o uso dos protocolos SSLv2, SSLv3, TLSv1, TLSv1.1 e cifras fracas na porta HTTPS e do console administrativo com os comandos abaixo.

sudo /opt/glassfishv4/glassfish/bin/asadmin set server.network-config.protocols.protocol.http-listener-2.ssl.ssl2-enabled=false
sudo /opt/glassfishv4/glassfish/bin/asadmin set server.network-config.protocols.protocol.http-listener-2.ssl.ssl3-enabled=false
sudo /opt/glassfishv4/glassfish/bin/asadmin set configs.config.server-config.network-config.protocols.protocol.http-listener-2.ssl.tls-enabled=false
sudo /opt/glassfishv4/glassfish/bin/asadmin set configs.config.server-config.network-config.protocols.protocol.http-listener-2.ssl.tls11-enabled=false
sudo /opt/glassfishv4/glassfish/bin/asadmin set 'configs.config.server-config.network-config.protocols.protocol.http-listener-2.ssl.ssl3-tls-ciphers=+TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,+TLS_DHE_DSS_WITH_AES_128_CBC_SHA,+TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,+TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,+TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,+TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,+TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,+TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,+TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA'
sudo /opt/glassfishv4/glassfish/bin/asadmin set server.network-config.protocols.protocol.sec-admin-listener.ssl.ssl2-enabled=false
sudo /opt/glassfishv4/glassfish/bin/asadmin set server.network-config.protocols.protocol.sec-admin-listener.ssl.ssl3-enabled=false
sudo /opt/glassfishv4/glassfish/bin/asadmin set 'configs.config.server-config.network-config.protocols.protocol.sec-admin-listener.ssl.ssl3-tls-ciphers=+TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,+TLS_DHE_DSS_WITH_AES_128_CBC_SHA,+TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,+TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,+TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,+TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,+TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,+TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,+TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA'
sudo /etc/init.d/glassfish restart

13- Ative o log de acesso ao Glassfish.

/opt/glassfishv4/glassfish/bin/asadmin set server.http-service.access-logging-enabled=true
/opt/glassfishv4/glassfish/bin/asadmin set server.http-service.access-log.format=common
/opt/glassfishv4/glassfish/bin/asadmin set server.http-service.virtual-server.server.access-logging-enabled=true

14- Use os comandos a seguir para mudar a porta padrão do HTTP para 80 e HTTPS para 443.

sudo /opt/glassfishv4/glassfish/bin/asadmin set configs.config.server-config.network-config.network-listeners.network-listener.http-listener-1.port=80

sudo /opt/glassfishv4/glassfish/bin/asadmin set configs.config.server-config.network-config.network-listeners.network-listener.http-listener-2.port=443

sudo /etc/init.d/glassfish restart

15- Se deseja habilitar o uso do certificado emitido por uma autoridade certificadora, siga os seguintes passos.

São necessários os seguintes arquivos:

ca-root.crt       => certificado da entidade certificadora raíz.
ca-inter.crt      => certificado intermediário da entidade certificadora, se houver.
hostname.pfx => arquivo contendo as chaves pública e privada do certificado emitido para um host ou domínio, geralmente ao invés de distribuir esses arquivos no formato .pfx, são distribuídos diretamente no padrão hostname.key (chave privada) e hostname.crt (certificado).

Crie o diretório /etc/certs para armazenar os certificados a serem usados pelo Glassfish.

sudo mkdir /etc/certs/

Copie os arquivos keystore.jks e cacerts.jks que existem no diretório do Glassfish para /etc/certs.

cd /opt/glassfishv4/glassfish/domains/domain1/config/
sudo cp keystore.jks cacerts.jks /etc/certs/
cd /etc/certs/

Cadastrando o certificado emitido no keystore.jks e cacerts.jks

Etapa 1) Como foi recebido o certificado hostname.pfx, será necessário extrair, a partir dele, os arquivos no formato .crt (certificado público) e .key (chave privada).

sudo openssl pkcs12 -in hostname.pfx -nocerts -nodes -out hostname.key
sudo openssl pkcs12 -in hostname.pfx -clcerts -nokeys -out hostname.crt

OBS.: Após cada comando acima informe a senha do arquivo hostname.pfx, usada na emissão do certificado.

Use o comando abaixo para criar uma cópia da chave privada e protejê-la com a senha changeit.  Isso é necessário porque o Glassfish usa a mesma senha do Java Key Store (JKS) para acessar a chave privada. Para evitar expor a senha da chave privada, pode-se criar uma cópia da mesma e protegê-la com a senha changeit, que é a senha padrão do JKS usado pelo Glassfish.
openssl rsa -des3 -in hostname.key -out hostname_new.key
Ao executar o comando anterior, será solicitada a senha da chave privada armazenada no arquivo hostname.key. Em seguida, será solicitada uma nova senha para proteger a cópia da chave privada. Digite changeit para ser a nova senha.

Etapa 2) Crie um arquivo keystore PKCS12 para armazenar a chave privada e do certificado público.

De posse dos arquivos .crt e .key, será necessário criar um arquivo keystore PKCS12, para unir as duas chaves novamente, mas em outro formato: o .p12.

sudo openssl pkcs12 -export -name my-cert -in hostname.crt -inkey hostname_new.key -out keystore.p12

OBS.: Na execução do comando acima, informe a senha da cópia da chave privada e, em seguida, crie uma nova senha para armazenar as chaves no formato .p12.

Etapa 3) Converta a chave do formato PKCS12 em uma keystore JKS.

Para converter a chave do formato .p12 para .jks, use o comando abaixo.

OBS.: A senha usada no armazenamento dos certificados no arquivo keystore.jks é: changeit.

sudo keytool -importkeystore -destkeystore keystore.jks -srckeystore keystore.p12 -srcstoretype pkcs12 -alias my-cert

Agora o arquivo keystore.jks está pronto.

Para listar o certificado importado, use o comando abaixo.

sudo keytool -list -keystore keystore.jks -alias my-cert -v

Etapa 4) Importe os certificados das entidades certificadoras

Importe para o arquivo cacerts.jks, os certificados das entidades certificadoras: ca-root.crt, ca-inter.crt (se existir).

OBS.: A senha usada no armazenamento dos certificados no arquivo cacerts.jks é: changeit.

sudo keytool -import -v -trustcacerts -alias ca-root -file ca-root.crt -keystore cacerts.jks -storepass changeit

sudo keytool -import -v -trustcacerts -alias ca-inter -file ca-inter.crt -keystore cacerts.jks -storepass changeit

Etapa 5) Importe os certificados das entidades certificadoras para o JKS padrão do JRE.

Adicione o certificado das autoridades certificadoras no JKS padrão da JRE do Java com os comandos abaixo.

sudo keytool -import -alias ca-root -keystore PATH_JRE/lib/security/cacerts -file ca-root.crt

sudo keytool -import -alias ca-inter -keystore PATH_JRE/lib/security/cacerts -file ca-inter.crt

Onde: PATH_JRE, deve ser substituído pelo diretório de base da JRE. Por exemplo: /usr/lib/jvm/java-8-oracle/jre/.

OBS.: A senha usada no armazenamento dos certificados no arquivo cacerts.jks é: changeit.

Etapa 6) Cadastre o keystore.jks e cacerts.jks no Glassfishv4. Execute a sequência de comandos abaixo, mas alterando os valores em negrito de acordo com o seu ambiente.

sudo /opt/glassfishv4/glassfish/bin/asadmin set 'configs.config.server-config.network-config.protocols.protocol.http-listener-2.ssl.cert-nickname=my-cert';
sudo /opt/glassfishv4/glassfish/bin/asadmin create-jvm-options '-Djavax.net.ssl.keyStore=/etc/certs/keystore.jks';
sudo /opt/glassfishv4/glassfish/bin/asadmin create-jvm-options '-Djavax.net.ssl.keyStorePassword=changeit';
sudo /opt/glassfishv4/glassfish/bin/asadmin create-jvm-options '-Djavax.net.ssl.trustStore=/etc/certs/cacerts.jks';
sudo /opt/glassfishv4/glassfish/bin/asadmin create-jvm-options '-Djavax.net.ssl.trustStorePassword=changeit';
sudo /opt/glassfishv4/glassfish/bin/asadmin create-jvm-options '-Dcom.sun.enterprise.security.httpsOutboundKeyAlias=my-cert';
sudo /opt/glassfishv4/glassfish/bin/asadmin create-jvm-options '-Djavax.net.ssl.keyStoreAlias=my-cert';
sudo /opt/glassfishv4/glassfish/bin/asadmin create-jvm-options '-Djavax.net.ssl.keyAlias=my-cert';

Reinicie o Glassfish com o comando abaixo, que o certificado será aplicado e a aplicação passará a utilizá-lo nas requisições HTTPS.

sudo /etc/init.d/glassfish restart

16) Execute os comandos abaixo para aplicar configurações de segurança no Glassfish

#disable client-initiated renegotiation (to decrease the surface for DoS attacks)

sudo /opt/glassfishv4/glassfish/bin/asadmin create-jvm-options -Djdk.tls.rejectClientInitiatedRenegotiation=true
#get rid of http header field value "server" (Glassfish obfuscation)
sudo /opt/glassfishv4/glassfish/bin/asadmin create-jvm-options -Dproduct.name=""
#disable sending x-powered-by in http header (Glassfish obfuscation)
sudo /opt/glassfishv4/glassfish/bin/asadmin set server.network-config.protocols.protocol.http-listener-1.http.xpowered-by=false
sudo /opt/glassfishv4/glassfish/bin/asadmin set server.network-config.protocols.protocol.http-listener-2.http.xpowered-by=false
sudo /opt/glassfishv4/glassfish/bin/asadmin set server.network-config.protocols.protocol.admin-listener.http.xpowered-by=false
#disable SSLv3 nas portas iiop
sudo /opt/glassfishv4/glassfish/bin/asadmin set server.iiop-service.iiop-listener.SSL.ssl.ssl3-enabled=false sudo /opt/glassfishv4/glassfish/bin/asadmin set server.iiop-service.iiop-listener.SSL_MUTUALAUTH.ssl.ssl3-enabled=false

#enable only access local at console Web Admin Glassfish

sudo /opt/glassfishv4/glassfish/bin/asadmin set server.network-config.network-listeners.network-listener.admin-listener.address=127.0.0.1

Reinicie o Glassfish com o comando abaixo, que o certificado será aplicado e a aplicação passará a utilizá-lo nas requisições HTTPS.

sudo /etc/init.d/glassfish restart

17) Execute a sequência de comandos abaixo se quiser redirecionar todo o tráfego da porta 80 para 443 automaticamente.

sudo /opt/glassfishv4/glassfish/bin/asadmin create-protocol --securityenabled=false http-redirect
sudo /opt/glassfishv4/glassfish/bin/asadmin create-http-redirect --redirect-port 443 --secure-redirect true http-redirect
sudo /opt/glassfishv4/glassfish/bin/asadmin create-protocol-filter --protocol http-redirect --classname org.glassfish.grizzly.config.portunif.HttpRedirectFilter redirect-filter
sudo /opt/glassfishv4/glassfish/bin/asadmin create-protocol --securityenabled=false pu-protocol
sudo /opt/glassfishv4/glassfish/bin/asadmin create-protocol-finder --protocol pu-protocol --targetprotocol http-listener-2 --classname org.glassfish.grizzly.config.portunif.HttpProtocolFinder http-finder
sudo /opt/glassfishv4/glassfish/bin/asadmin create-protocol-finder --protocol pu-protocol --targetprotocol http-redirect --classname org.glassfish.grizzly.config.portunif.HttpProtocolFinder http-redirect
sudo /opt/glassfishv4/glassfish/bin/asadmin set configs.config.server-config.network-config.network-listeners.network-listener.http-listener-1.protocol=pu-protocol

Reinicie o Glassfish com o comando abaixo, que o certificado será aplicado e a aplicação passará a utilizá-lo nas requisições HTTPS.

sudo /etc/init.d/glassfish restart

Criando um Pool de Acesso ao PostgreSQL no Glassfish

Se você tiver uma aplicação Web a ser implantada no Glassfish e que usa o banco de dados PostgreSQL, você pode usar os comandos para criar um recurso JDBC que usa o pool de conexões do Glassfish para gerenciar o acesso ao banco. Fazendo isso, será necessário que você ajuste o código da sua aplicação para ela usar o pool criado no Glassfish.

Abaixo estão os comandos para criar o pool e o recurso JDBC.

/opt/glassfishv4/glassfish/bin/asadmin create-jdbc-connection-pool --restype javax.sql.DataSource --datasourceclassname org.postgresql.ds.PGSimpleDataSource --maxpoolsize 100 --property "User=DBUSER:Password=DBPASSWORD:DatabaseName=DBASE:ServerName=DBHOST:PortNumber=DBPORTNUMBER" POOL_NAME
/opt/glassfishv4/glassfish/bin/asadmin create-jdbc-resource --connectionpoolid POOL_NAME RESOURCE_NAME
/etc/init.d/glassfish restart

Os comandos abaixo, confirguram a capacidade do pool de se reconectar ao banco de dados, em caso de perda de conexão.

/opt/glassfishv4/glassfish/bin/asadmin set resources.jdbc-connection-pool.POOL_NAME.connection-validation-method=custom-validation

/opt/glassfishv4/glassfish/bin/asadmin set resources.jdbc-connection-pool.POOL_NAME.validation-classname=org.glassfish.api.jdbc.validation.PostgresConnectionValidation

/opt/glassfishv4/glassfish/bin/asadmin set resources.jdbc-connection-pool.POOL_NAME.is-connection-validation-required=true

/opt/glassfishv4/glassfish/bin/asadmin set resources.jdbc-connection-pool.POOL_NAME.fail-all-connections=true
/etc/init.d/glassfish restart

Deploy e undeploy de aplicação no Glassfish

Abaixo estão os comandos para implantar (deploy) uma aplicação .war ou .ear no Glassfish.
/opt/glassfishv4/glassfish/bin/asadmin deploy --force=true --name=APP APP.war
/etc/init.d/glassfish restart
Abaixo estão os comandos para desimplantar (undeploy) uma aplicação no Glassfish.
/opt/glassfishv4/glassfish/bin/asadmin undeploy --name=APP 
/etc/init.d/glassfish restart

 

Fontes:

https://www.nabisoft.com/tutorials/glassfish/installing-glassfish-41-on-ubuntu
http://www.java-samples.com/showtutorial.php?tutorialid=1214
http://askubuntu.com/questions/587683/glassfish-ssl-console-handshake-exception
http://stackoverflow.com/questions/12860289/import-ssl-certificate-in-glassfish
https://www.nabisoft.com/tutorials/glassfish/installing-glassfish-41-on-ubuntu
http://grepthelinuxblog.blogspot.com.br/2012/02/glassfish-ssl-verisign-certificate.html
http://grburgos.blogspot.com.br/2010/07/glassfish-v3-with-ssl-using-verisign.html
https://glassfish.java.net/wiki-archive/How_to_ssl_versign.html
https://docs.oracle.com/cd/E19798-01/821-1751/ablqz/index.html
https://www.digicert.com/ssl-support/jks-import-export-java.htm
http://stackoverflow.com/questions/34726305/getting-ssl-certificate-to-work-with-payara-4-1/34808985
http://www.guj.com.br/t/sucesso-glassfish-v3-ssl-certificado-serasa-globalsign-etc/195965
http://www.denizoguz.com/2011/01/02/installing-godaddy-ssl-certificates-on-glassfish-v3-step-by-step/

 

7 comentários em “Customizando o Glassfish 4 no Ubuntu 16.04

  • Boa tarde!
    Segui o seu tutorial para criar um servidor no google cloud em uma intancia ubuntu, mas n consigo acesso a porta:4848, vc sabe me indicar um jeito para ter esse acesso? Grato pela atenção!

  • Boa tarde, Wibson!

    Ao longo do tutorial foi executado um comando para desabilitar o acesso remoto a porta 4848/TCP. O comando foi esse:

    sudo /opt/glassfishv4/glassfish/bin/asadmin set server.network-config.network-listeners.network-listener.admin-listener.address=127.0.0.1

    Leia novamente com calma para entender o porque de cada comando.

    O objetivo de desabilitar o acesso remoto a esta porta é: segurança. O painel administrativo web do Glassfish possui algumas vulnerabilidades de segurança que um atacante pode explorar e até obter acesso de root.

    Uma vez que esta porta esteja desabilitada, você passa a gerenciar o Glassfish usando o comando asadmin, que deve ser executado localmente na sua instância.

    Se mesmo assim, você quiser assumir o risco, então é só executar o comando abaixo.

    sudo /opt/glassfishv4/glassfish/bin/asadmin set server.network-config.network-listeners.network-listener.admin-listener.address=0.0.0.0

    sudo /etc/init.d/glassfish restart

    Opcionalmente, você pode mudar 0.0.0.0 no comando acima para o IP público e fixo do qual está acessando.

    Abraço e fica com Deus.

  • Aécio, muito obrigado pela sua atenção e rapidez em responder a minha duvida!
    Realmente me faltou um pouco mais de disciplina n hora da leitura, mas vou corrigir esse erro! rs
    Tenha uma ótima semana!

  • Boa tarde Aécio!
    Desculpe incomodar de novo, mas estou obendo o seguinte erro ao fazer o deploy:
    Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.ClassNotFoundException: org.eclipse.persistence.jpa.rs.exceptions.ClassNotFoundExceptionMapper. Please see server.log for more details.

    Vcsabe como corrigir?
    Estou usando NEtBeans para gerar um WebService Restful

    Grato!

  • Boa tarde, Wibson!

    Infelizmente eu não sei como ajudá-lo. Peça ajuda a algum desenvolvedor experiente no assunto.
    Eu só sei como instalar o Glassfish. Não entendo de desenvolvimento de aplicações Java.

    Abraço e fica com Deus.

  • Eu consegui resolver!
    Como parte dos estudos eu estava criando uma aplicação Maven, então resolvi criar uma aplicação java Web comum e funcionou!
    Novamente grato pela atenção!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *