JMX remote connection with username/pw problem

0 votes
asked Apr 27, 2013 in IRF tantárgy by anonymous  
edited Apr 28, 2013 by micskeiz

Sziasztok!

A házim már ezen kívül készen van, de ezt nem tudom megcsinálni valamiért:

Windows 8-as gépről szeretném JConsole-on keresztül remote connection-el elérni a virtuális gépben (szintén Win8) futó java programomat.

Ha nem adok meg jelszót ( -Dcom.sun.management.jmxremote.authenticate=false ), működik a dolog, szépen fut minden.

A probléma akkor jön, ha szeretnék username/pw segítségével egy autentikációt.

A gyakorlati segédlet alapján lemásoltam a template fájlt, átneveztem, hagytam minden értéket alapértelmezetten.
Átállítottam a tulajdonost ahogyan írták. A program maga a virtuális gépen gond nélkül indul a következő paraméterezéssel:

java -Dcom.sun.management.jmxremote.port=9004 -Dcom.sun.management.jmxremote.ssl=false  -jar GameEnvironment.jar 1984

IP , Port stimmel, próbáltam mind2 előredefiniált felhasználó,jelszó párossal de nem sikerült

Itt a hibaüzenet amit a jconsole -debug opcióval állítottam elő:

java.lang.SecurityException: Authentication failed! Invalid username or password at com.sun.jmx.remote.security.JMXPluggableAuthenticator.authenticationFailure(Unknown Source) at com.sun.jmx.remote.security.JMXPluggableAuthenticator.authenticate(Unknown Source) at sun.management.jmxremote.ConnectorBootstrap$AccessFileCheckerAuthenticator.authenticate(Unknown Source) at javax.management.remote.rmi.RMIServerImpl.doNewClient(Unknown Source) at javax.management.remote.rmi.RMIServerImpl.newClient(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source) at sun.rmi.transport.Transport$1.run(Unknown Source) at sun.rmi.transport.Transport$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Unknown Source) at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:273) at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:251) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:160) at javax.management.remote.rmi.RMIServerImpl_Stub.newClient(Unknown Source) at javax.management.remote.rmi.RMIConnector.getConnection(RMIConnector.java:2370) at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:296) at sun.tools.jconsole.ProxyClient.tryConnect(ProxyClient.java:366) at sun.tools.jconsole.ProxyClient.connect(ProxyClient.java:314) at sun.tools.jconsole.VMPanel$2.run(VMPanel.java:295) Caused by: javax.security.auth.login.FailedLoginException: Invalid username or password at com.sun.jmx.remote.security.FileLoginModule.attemptAuthentication(Unknown Source) at com.sun.jmx.remote.security.FileLoginModule.login(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at javax.security.auth.login.LoginContext.invoke(Unknown Source) at javax.security.auth.login.LoginContext.access$000(Unknown Source) at javax.security.auth.login.LoginContext$5.run(Unknown Source) at javax.security.auth.login.LoginContext$5.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.login.LoginContext.invokeCreatorPriv(Unknown Source) at javax.security.auth.login.LoginContext.login(Unknown Source) at com.sun.jmx.remote.security.JMXPluggableAuthenticator.authenticate(Unknown Source) at sun.management.jmxremote.ConnectorBootstrap$AccessFileCheckerAuthenticator.authenticate(Unknown Source) at javax.management.remote.rmi.RMIServerImpl.doNewClient(Unknown Source) at javax.management.remote.rmi.RMIServerImpl.newClient(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source) at sun.rmi.transport.Transport$1.run(Unknown Source) at sun.rmi.transport.Transport$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Unknown Source) at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

Ha bárkinek van bármi ötlete, hogy mit rontottam el akkor azt nagyon megköszönném!

commented Apr 28, 2013 by micskeiz (2,873 points)  
Csak egy próba: a jmxremote.password fájlban kivetted a kommentet a monitorRole-t és a controlRole-t szerepeket megadó sorok elől?

1 Answer

0 votes
answered Apr 28, 2013 by anonymous  

Igen, a kommentet kivettem, de közbe megoldódott.

Én a jdk-ban lévő jre beállításait állítottam át, nem a sima jre beállításait.

Miután ott is beállítottam ment tökéletesen!

...