3.3. Classes Assunto e Principal
Com o objetivo de autorizar o acesso aos recursos, os aplicativos devem autenticar primeiramente a fonte da solicitação. O framework JAAS define o assunto do termo para representar uma fonte da solicitação. A classe
Subject
é a classe central no JAAS. O Subject
representa uma informação a uma entidade única, tal como uma pessoa ou serviço. Ele abrange os principais da entidade, os credenciais públicos e os credenciais privados. O JAAS APIs usa a interface do Java 2 java.security.Principal
existente para representar um principal, que é essencialmente um nome digitado.
Durante o processo de autenticação, um assunto é povoado com as identidades associadas ou principais. O assunto pode possuir diversos principais. Por exemplo, uma pessoa possui o nome principal (John Doe), um número de segurança principal (123-45-6789) e um nome de usuário principal (johnd), todos eles ajudam a distinguir o assunto a partir de outros assuntos. Existem dois métodos disponíveis para recuperar os principais associados com um assunto:
public Set getPrincipals() {...} public Set getPrincipals(Class c) {...}
public Set getPrincipals() {...}
public Set getPrincipals(Class c) {...}
O
getPrincipals()
retorna todos os principais contidos no assunto. O getPrincipals(Class c)
retorna apenas aqueles principais que são instâncias da classe c
ou uma de suas subclasses. Um conjunto vazio é retornado caso o assunto não possua principais coincidentes.
Perceba que a interface
java.security.acl.Group
é uma subinterface do java.security.Principal
, de forma que uma instância no conjunto de principais pode representar um agrupamento lógico de outros principais ou grupos de principais.