keycloak-service
クラス | 公開メンバ関数 | 非公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.theme.ExtendingThemeManager クラス
org.keycloak.theme.ExtendingThemeManager の継承関係図
Inheritance graph
org.keycloak.theme.ExtendingThemeManager 連携図
Collaboration graph

クラス

class  ExtendingTheme
 

公開メンバ関数

 ExtendingThemeManager (KeycloakSession session, ConcurrentHashMap< ExtendingThemeManagerFactory.ThemeKey, Theme > themeCache)
 
int getProviderPriority ()
 
Theme getTheme (String name, Theme.Type type) throws IOException
 
Set< String > nameSet (Theme.Type type)
 
boolean hasTheme (String name, Theme.Type type)
 
void close ()
 

非公開メンバ関数

List< ThemeProvider > getProviders ()
 
Theme loadTheme (String name, Theme.Type type) throws IOException
 
Theme findTheme (String name, Theme.Type type)
 

非公開変数類

final KeycloakSession session
 
final ConcurrentHashMap< ExtendingThemeManagerFactory.ThemeKey, Theme > themeCache
 
List< ThemeProvider > providers
 
String defaultTheme
 

静的非公開変数類

static final Logger log = Logger.getLogger(ExtendingThemeManager.class)
 

詳解

著者
Stian Thorgersen

構築子と解体子

◆ ExtendingThemeManager()

org.keycloak.theme.ExtendingThemeManager.ExtendingThemeManager ( KeycloakSession  session,
ConcurrentHashMap< ExtendingThemeManagerFactory.ThemeKey, Theme >  themeCache 
)
inline
51  {
52  this.session = session;
53  this.themeCache = themeCache;
54  this.defaultTheme = Config.scope("theme").get("default", Version.NAME.toLowerCase());
55  }
final KeycloakSession session
Definition: ExtendingThemeManager.java:46
String defaultTheme
Definition: ExtendingThemeManager.java:49
final ConcurrentHashMap< ExtendingThemeManagerFactory.ThemeKey, Theme > themeCache
Definition: ExtendingThemeManager.java:47

関数詳解

◆ close()

void org.keycloak.theme.ExtendingThemeManager.close ( )
inline
157  {
158  providers = null;
159  }
List< ThemeProvider > providers
Definition: ExtendingThemeManager.java:48

◆ findTheme()

Theme org.keycloak.theme.ExtendingThemeManager.findTheme ( String  name,
Theme.Type  type 
)
inlineprivate
161  {
162  for (ThemeProvider p : getProviders()) {
163  if (p.hasTheme(name, type)) {
164  try {
165  return p.getTheme(name, type);
166  } catch (IOException e) {
167  log.errorv(e, p.getClass() + " failed to load theme, type={0}, name={1}", type, name);
168  }
169  }
170  }
171  return null;
172  }
List< ThemeProvider > getProviders()
Definition: ExtendingThemeManager.java:57
static final Logger log
Definition: ExtendingThemeManager.java:44

◆ getProviderPriority()

int org.keycloak.theme.ExtendingThemeManager.getProviderPriority ( )
inline
81  {
82  return 0;
83  }

◆ getProviders()

List<ThemeProvider> org.keycloak.theme.ExtendingThemeManager.getProviders ( )
inlineprivate
57  {
58  if (providers == null) {
59  providers = new LinkedList();
60 
61  for (ThemeProvider p : session.getAllProviders(ThemeProvider.class)) {
62  if (!(p instanceof ExtendingThemeManager)) {
63  if (!p.getClass().equals(ExtendingThemeManager.class)) {
64  providers.add(p);
65  }
66  }
67  }
68 
69  Collections.sort(providers, new Comparator<ThemeProvider>() {
70  @Override
71  public int compare(ThemeProvider o1, ThemeProvider o2) {
72  return o2.getProviderPriority() - o1.getProviderPriority();
73  }
74  });
75  }
76 
77  return providers;
78  }
ExtendingThemeManager(KeycloakSession session, ConcurrentHashMap< ExtendingThemeManagerFactory.ThemeKey, Theme > themeCache)
Definition: ExtendingThemeManager.java:51
List< ThemeProvider > providers
Definition: ExtendingThemeManager.java:48
final KeycloakSession session
Definition: ExtendingThemeManager.java:46

◆ getTheme()

Theme org.keycloak.theme.ExtendingThemeManager.getTheme ( String  name,
Theme.Type  type 
) throws IOException
inline
86  {
87  if (name == null) {
88  name = defaultTheme;
89  }
90 
91  if (themeCache != null) {
92  ExtendingThemeManagerFactory.ThemeKey key = ExtendingThemeManagerFactory.ThemeKey.get(name, type);
93  Theme theme = themeCache.get(key);
94  if (theme == null) {
95  theme = loadTheme(name, type);
96  if (theme == null) {
97  theme = loadTheme("keycloak", type);
98  if (theme == null) {
99  theme = loadTheme("base", type);
100  }
101  log.errorv("Failed to find {0} theme {1}, using built-in themes", type, name);
102  } else if (themeCache.putIfAbsent(key, theme) != null) {
103  theme = themeCache.get(key);
104  }
105  }
106  return theme;
107  } else {
108  return loadTheme(name, type);
109  }
110  }
static final Logger log
Definition: ExtendingThemeManager.java:44
Theme loadTheme(String name, Theme.Type type)
Definition: ExtendingThemeManager.java:112
String defaultTheme
Definition: ExtendingThemeManager.java:49
final ConcurrentHashMap< ExtendingThemeManagerFactory.ThemeKey, Theme > themeCache
Definition: ExtendingThemeManager.java:47

◆ hasTheme()

boolean org.keycloak.theme.ExtendingThemeManager.hasTheme ( String  name,
Theme.Type  type 
)
inline
147  {
148  for (ThemeProvider p : getProviders()) {
149  if (p.hasTheme(name, type)) {
150  return true;
151  }
152  }
153  return false;
154  }
List< ThemeProvider > getProviders()
Definition: ExtendingThemeManager.java:57

◆ loadTheme()

Theme org.keycloak.theme.ExtendingThemeManager.loadTheme ( String  name,
Theme.Type  type 
) throws IOException
inlineprivate
112  {
113  Theme theme = findTheme(name, type);
114  List<Theme> themes = new LinkedList<>();
115  themes.add(theme);
116 
117  if (theme.getImportName() != null) {
118  String[] s = theme.getImportName().split("/");
119  themes.add(findTheme(s[1], Theme.Type.valueOf(s[0].toUpperCase())));
120  }
121 
122  if (theme.getParentName() != null) {
123  for (String parentName = theme.getParentName(); parentName != null; parentName = theme.getParentName()) {
124  theme = findTheme(parentName, type);
125  themes.add(theme);
126 
127  if (theme.getImportName() != null) {
128  String[] s = theme.getImportName().split("/");
129  themes.add(findTheme(s[1], Theme.Type.valueOf(s[0].toUpperCase())));
130  }
131  }
132  }
133 
134  return new ExtendingTheme(themes, session.getAllProviders(ThemeResourceProvider.class));
135  }
final KeycloakSession session
Definition: ExtendingThemeManager.java:46
Theme findTheme(String name, Theme.Type type)
Definition: ExtendingThemeManager.java:161

◆ nameSet()

Set<String> org.keycloak.theme.ExtendingThemeManager.nameSet ( Theme.Type  type)
inline
138  {
139  Set<String> themes = new HashSet<String>();
140  for (ThemeProvider p : getProviders()) {
141  themes.addAll(p.nameSet(type));
142  }
143  return themes;
144  }
List< ThemeProvider > getProviders()
Definition: ExtendingThemeManager.java:57

メンバ詳解

◆ defaultTheme

String org.keycloak.theme.ExtendingThemeManager.defaultTheme
private

◆ log

final Logger org.keycloak.theme.ExtendingThemeManager.log = Logger.getLogger(ExtendingThemeManager.class)
staticprivate

◆ providers

List<ThemeProvider> org.keycloak.theme.ExtendingThemeManager.providers
private

◆ session

final KeycloakSession org.keycloak.theme.ExtendingThemeManager.session
private

◆ themeCache

final ConcurrentHashMap<ExtendingThemeManagerFactory.ThemeKey, Theme> org.keycloak.theme.ExtendingThemeManager.themeCache
private

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