Conta de usuario

2 respostas
A

Pessoal,

Qual classe que eu uso para usar privilegio de acesso em um logon em um sistema, quero determinar se o usuario é avancado (algumas funcoes) adm (detem o dominio total) e assim vai, nao me lembro mas ja vi algo parecido !

valew
[]s

2 Respostas

T

Por incrível que pareça, dá. Só que não vou dar muito mastigado, porque não tenho isso pronto. Mas vou dar o caminho das pedras.

Dê uma olhada nos exemplos e507, e508 e e509 do javaalmanac:

http://www.javaalmanac.com/egs/javax.security.auth.login/pkg.html

A seguir, veja qual é o SID do grupo Administradores:

(Não sei se é S-1-1-0 ou S-1-2-0 ou S-1-5-15 )

Tente rodar a seguir este programa (que é o exemplo e508 modificado, use os mesmos parâmetros e o mesmo arquivo de configuração). Veja a saída quando rodado por um usuário normal e outro Administrador. E veja qual é a diferença.

import javax.security.auth.login.*;
import javax.security.auth.*;
import java.security.*;


class Test170 {
    public static void main(String[] args) {
        try {
            String loginAppName = "GetLoginNameUnix";
        
            // If the application is run on NT rather than Unix, use this name
            loginAppName = "GetLoginNameNT";
        
            // Create login context
            LoginContext lc = new LoginContext(loginAppName,
                new com.sun.security.auth.callback.TextCallbackHandler());
        
            // Retrieve the information on the logged-in user
            lc.login();
        
            // Get the authenticated subject
            Subject subject = lc.getSubject();
        
            // Get the subject principals
            Principal principals[] = (Principal[])subject.getPrincipals().toArray(new Principal[0]);
            for (int i=0; i<principals.length; i++) {
//                if (principals[i] instanceof com.sun.security.auth.NTUserPrincipal
//                      || principals[i] instanceof com.sun.security.auth.UnixPrincipal) {
                    System.out.println (principals[i].getClass().getName());
                    System.out.println (principals[i].getName());
//                }
            }
        } catch (LoginException e) {
            // Login failed
        }
    }
}
>
A

valew tingol, vou testar e te falo o resultado !

[]s

Criado 10 de maio de 2005
Ultima resposta 10 de mai. de 2005
Respostas 2
Participantes 2