Pegar o nome do Usuário Logado na Máquina

Olá,

Como faço para pegar o nome do usuário logado na máquina?? Seria o usuario que se loga para entrar no sistema operacional.

Alguem saberia me dizer uma boa fonte de pesquisa sobre o assunto :?: :?:

Obrigado…

Felipe

Se tua aplicação for web, dá uma pesquisada que umas semanas atrás foi discutido isso.

Se a aplicação for desktop: http://www.sinotar.com/download/swin/README.html

Tem tanta gente que pergunta isso (até no meu serviço me pediram uma solução :wink: ) que acho que vou fazer uma receita de bolo para o Tomcat. Não é possível, todo mundo pede isso!

[quote=thingol]Tem tanta gente que pergunta isso (até no meu serviço me pediram uma solução :wink: ) que acho que vou fazer uma receita de bolo para o Tomcat. Não é possível, todo mundo pede isso!
[/quote]

Seria bem legal da sua parte! :lol:

System.getProperty(“user.dir”); - User’s current working directory
System.getProperty(“user.home”); - User home directory
System.getProperty(“user.name”); - User account name

http://java.sun.com/docs/books/tutorial/essential/system/properties.html

Pessoal,
me veio uma dúvida:

Existe uma maneira de retornar todas as chaves de
propriedades registradas??? Uma coleção sei lá…

O que seriam as chaves de propriedades registradas?

Algo do registro do Windows? Se for, olhe a classe Preferences.

System.getProperty("user.dir"); - User's current working directory System.getProperty("user.home"); - User home directory System.getProperty("user.name"); - User account name

Agradeço bastante a atenção e os esforços de todos. Eu procurei saber como conseguir pegar o usuário de Rede do usuario quando ele esteja acessando meu sistema na web mas percebi que algumas perguntas com respostas muito boa ainda não foram resolvidas.
Se alguem tiver um pouco de paciencia em me ajudar eu agradeço…

Eu testei uma grande dica de uma pergunta igual a minha aqui no Forum mas me retornou NULL.

Configurei isso no meu web.xml

  • jcifs.netbios.wins IP DO MEU SERVIDOR DE DOMINIO
  • jcifs.smb.client.domain MEU DOMINIO

Inclui o pacote jcifs-1.2.0.jar no meu projeto WEB-INF/lib

E tentei resgatar o usuario de rede do individuo que acessa meu sistema de web pelo comando request.getRemoteUser() e este me retorna NULL.

Alguem sabe se estou fazendo alguma besteira??

Se alguem me ajudar a resolver isso eu faço um tutorial dessa praga, que todo mundo tem duvida, e deixo na web. :lol: :lol:

Valeu pessoal!!

Felipe

Dica: para saber se tem alguma coisa configurada corretamente, ligue o log do JCIFS, e deixe em nível mais alto possível (3). Se for o Tomcat, dá para ver o log do JCIFS no console. Quanto ao resto parece que está ok (pelo menos tentei ontem e funcionou direitinho).

<filter>
    <filter-name>NtlmHttpFilter</filter-name>
    <filter-class>jcifs.http.NtlmHttpFilter</filter-class>

    <init-param>
        <param-name>jcifs.smb.client.domain</param-name>
        <param-value>DOMINIO</param-value>
    </init-param>
    <init-param>
        <param-name>jcifs.netbios.wins</param-name>
        <param-value>10.100.77.78</param-value>
    </init-param>
    <init-param>
        <param-name>jcifs.util.loglevel</param-name>
        <param-value>3</param-value>
    </init-param>
    
    
</filter>

<filter-mapping>
    <filter-name>NtlmHttpFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

onde está escrito DOMINIO troque pelo nome do seu domínio, e onde está 10.100.77.78 ponha o nome do seu servidor WINS.

Saída de ipconfig /all para minha máquina (devidamente censurada :wink: ). Pode ser que na sua rede o servidor Wins não seja o mesmo que o servidor de domínio (se você quer usar o servidor de domínio, consulte a documentação do JCIFS).

Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . : xxxx.com.br
   Description . . . . . . . . . . . : XXXXXX
   Physical Address. . . . . . . . . : 00-12-34-56-78-9A
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IP Address. . . . . . . . . . . . : 10.XXX.XXX.XXX
   Subnet Mask . . . . . . . . . . . : 255.255.0.0
   Default Gateway . . . . . . . . . : 10.XXX.XXX.XXX
   DHCP Server . . . . . . . . . . . : 10.XXX.XXX.XXX
   DNS Servers . . . . . . . . . . . : 200.XXX.XXX.XXX
                                       200.XXX.XXX.XXX
   Primary WINS Server . . . . . . . : 10.100.77.78
   Lease Obtained. . . . . . . . . . : ...
   Lease Expires . . . . . . . . . . : ...

Valeu thingol!!
Consegui obter o usuario de rede direitinho conforme a sua dica…

Agradeço a todos que deram suas palavrinhas e atenção a esta duvida que acredito que seja de muita gente…

Ai está uma solução!

[]´s

Felipe

Galera estou com um problema com o JCifs.
Estou utilizando JBoss - 4.2.
Fiz a seguinte configuração no meu web.xml

Retirei todas minha constraints JEE. Mas mantive as constraints no web.xml

	<security-constraint>
		<web-resource-collection>
			<web-resource-name>RestricaoPadrao</web-resource-name>
			<description> restricao a todos os operadores nao logados 
			</description>
			<url-pattern>/workflow/*</url-pattern>		
			<http-method>GET</http-method>
			<http-method>POST</http-method>
		</web-resource-collection>
		<auth-constraint>
			<description>Authorized Users Group</description>
			<role-name>*</role-name>
		</auth-constraint>
		<user-data-constraint>
			<transport-guarantee>NONE</transport-guarantee>
		</user-data-constraint>
	</security-constraint>

apesar do meu log está mostrando logado com sucesso

Só que request.getRemoteUser me retorna null.

Quando tendo acessar uma pagina que está protegida, da acesso negado.
Alguém pode me ajudar?

achei massa, porém quando eu entro no site pede a autenticação, não tem como entrar sem digitar novamente o dominio de rede/senha?

Um comentário adicional: acabo de ver no site do JCIFS que o suporte à técnica descrita pelo thingol será removido de versões futuras da biblioteca:

http://jcifs.samba.org/src/docs/ntlmhttpauth.html

O mesmo site recomenda usar a biblioteca Jespa, disponível abaixo:

http://www.ioplex.com/jespa.html

thingol esta solucao funciona com struts 2.0 ?

Fiz desse jeito e deu o sequinte erro, uso ubuntu, alguma ideia??? o mc é o dominio.

java.net.UnknownHostException: MC at jcifs.netbios.NameServiceClient.getAllByName(NameServiceClient.java:307) at jcifs.netbios.NbtAddress.getAllByName(NbtAddress.java:463) at jcifs.smb.SmbSession.getChallengeForDomain(SmbSession.java:75) at jcifs.http.NtlmHttpFilter.negotiate(NtlmHttpFilter.java:157) at jcifs.http.NtlmHttpFilter.doFilter(NtlmHttpFilter.java:121) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:413) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) at java.lang.Thread.run(Thread.java:722)