keycloak-federation
クラス | 公開メンバ関数 | 静的公開メンバ関数 | 非公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.federation.sssd.api.Sssd クラス
org.keycloak.federation.sssd.api.Sssd 連携図
Collaboration graph

クラス

class  User
 

公開メンバ関数

 Sssd (String username)
 
List< String > getGroups ()
 
User getUser ()
 

静的公開メンバ関数

static void disconnect ()
 
static String getRawAttribute (Variant variant)
 
static boolean isAvailable ()
 

非公開メンバ関数

 Sssd ()
 

非公開変数類

String username
 

静的非公開変数類

static DBusConnection dBusConnection
 
static final Logger logger = Logger.getLogger(Sssd.class)
 

詳解

著者
Bruno Oliveira
バージョン
Revision
1

構築子と解体子

◆ Sssd() [1/2]

org.keycloak.federation.sssd.api.Sssd.Sssd ( )
inlineprivate
48  {
49  }

◆ Sssd() [2/2]

org.keycloak.federation.sssd.api.Sssd.Sssd ( String  username)
inline
51  {
52  this.username = username;
53  try {
54  if (LibraryLoader.load().succeed())
55  dBusConnection = DBusConnection.getConnection(DBusConnection.SYSTEM);
56  } catch (DBusException e) {
57  e.printStackTrace();
58  }
59 
60  }
static DBusConnection dBusConnection
Definition: Sssd.java:39
static DBusConnection getConnection(String address)
Definition: DBusConnection.java:205
String username
Definition: Sssd.java:45

関数詳解

◆ disconnect()

static void org.keycloak.federation.sssd.api.Sssd.disconnect ( )
inlinestatic
41  {
43  }
static DBusConnection dBusConnection
Definition: Sssd.java:39
void disconnect()
Definition: DBusConnection.java:763

◆ getGroups()

List<String> org.keycloak.federation.sssd.api.Sssd.getGroups ( )
inline
72  {
73  List<String> userGroups;
74  try {
75  InfoPipe infoPipe = dBusConnection.getRemoteObject(InfoPipe.BUSNAME, InfoPipe.OBJECTPATH, InfoPipe.class);
76  userGroups = infoPipe.getUserGroups(username);
77  } catch (Exception e) {
78  throw new SSSDException("Failed to retrieve user's groups from SSSD. Check if SSSD service is active.");
79  }
80  return userGroups;
81  }
DBusInterface getRemoteObject(String busname, String objectpath)
Definition: DBusConnection.java:527
static DBusConnection dBusConnection
Definition: Sssd.java:39
String username
Definition: Sssd.java:45

◆ getRawAttribute()

static String org.keycloak.federation.sssd.api.Sssd.getRawAttribute ( Variant  variant)
inlinestatic
62  {
63  if (variant != null) {
64  Vector value = (Vector) variant.getValue();
65  if (value.size() >= 1) {
66  return value.get(0).toString();
67  }
68  }
69  return null;
70  }

◆ getUser()

User org.keycloak.federation.sssd.api.Sssd.getUser ( )
inline
104  {
105 
106  String[] attr = {"mail", "givenname", "sn", "telephoneNumber"};
107  User user = null;
108  try {
109  InfoPipe infoPipe = dBusConnection.getRemoteObject(InfoPipe.BUSNAME, InfoPipe.OBJECTPATH, InfoPipe.class);
110  user = new User(infoPipe.getUserAttributes(username, Arrays.asList(attr)));
111  } catch (Exception e) {
112  throw new SSSDException("Failed to retrieve user's attributes. Check if SSSD service is active.");
113  }
114  return user;
115  }
DBusInterface getRemoteObject(String busname, String objectpath)
Definition: DBusConnection.java:527
static DBusConnection dBusConnection
Definition: Sssd.java:39
String username
Definition: Sssd.java:45

◆ isAvailable()

static boolean org.keycloak.federation.sssd.api.Sssd.isAvailable ( )
inlinestatic
83  {
84  boolean sssdAvailable = false;
85  try {
86  if (LibraryLoader.load().succeed()) {
87  DBusConnection connection = DBusConnection.getConnection(DBusConnection.SYSTEM);
88  InfoPipe infoPipe = connection.getRemoteObject(InfoPipe.BUSNAME, InfoPipe.OBJECTPATH, InfoPipe.class);
89 
90  if (infoPipe.ping("PING") == null || infoPipe.ping("PING").isEmpty()) {
91  logger.debugv("SSSD is not available in your system. Federation provider will be disabled.");
92  } else {
93  sssdAvailable = true;
94  }
95  } else {
96  logger.debugv("The RPM libunix-dbus-java is not installed. SSSD Federation provider will be disabled.");
97  }
98  } catch (Exception e) {
99  logger.debugv("SSSD is not available in your system. Federation provider will be disabled.", e);
100  }
101  return sssdAvailable;
102  }
static final Logger logger
Definition: Sssd.java:46

メンバ詳解

◆ dBusConnection

DBusConnection org.keycloak.federation.sssd.api.Sssd.dBusConnection
staticprivate

◆ logger

final Logger org.keycloak.federation.sssd.api.Sssd.logger = Logger.getLogger(Sssd.class)
staticprivate

◆ username

String org.keycloak.federation.sssd.api.Sssd.username
private

このクラス詳解は次のファイルから抽出されました: