Add missing isUsed override to OidcAuthentication code.

This commit is contained in:
Hardy Pottinger
2022-01-05 14:46:12 -06:00
parent e8aa946963
commit e6012b0ef7
2 changed files with 25 additions and 0 deletions

View File

@@ -29,6 +29,8 @@ public class OidcAuthentication implements AuthenticationMethod {
private final ServiceManager serviceManager = new DSpace().getServiceManager(); private final ServiceManager serviceManager = new DSpace().getServiceManager();
private static final String OIDC_AUTHENTICATED = "oidc.authenticated";
@Override @Override
public boolean canSelfRegister(Context context, HttpServletRequest request, String username) throws SQLException { public boolean canSelfRegister(Context context, HttpServletRequest request, String username) throws SQLException {
return getOidcAuthentication().canSelfRegister(context, request, username); return getOidcAuthentication().canSelfRegister(context, request, username);
@@ -74,4 +76,14 @@ public class OidcAuthentication implements AuthenticationMethod {
return serviceManager.getServiceByName("oidcAuthentication", OidcAuthenticationBean.class); return serviceManager.getServiceByName("oidcAuthentication", OidcAuthenticationBean.class);
} }
@Override
public boolean isUsed(final Context context, final HttpServletRequest request) {
if (request != null &&
context.getCurrentUser() != null &&
request.getAttribute(OIDC_AUTHENTICATED) != null) {
return true;
}
return false;
}
} }

View File

@@ -51,6 +51,8 @@ public class OidcAuthenticationBean implements AuthenticationMethod {
private static final Logger LOGGER = LoggerFactory.getLogger(OidcAuthenticationBean.class); private static final Logger LOGGER = LoggerFactory.getLogger(OidcAuthenticationBean.class);
private static final String OIDC_AUTHENTICATED = "oidc.authenticated";
@Autowired @Autowired
private ConfigurationService configurationService; private ConfigurationService configurationService;
@@ -129,6 +131,7 @@ public class OidcAuthenticationBean implements AuthenticationMethod {
EPerson ePerson = ePersonService.findByEmail(context, email); EPerson ePerson = ePersonService.findByEmail(context, email);
if (ePerson != null) { if (ePerson != null) {
request.setAttribute(OIDC_AUTHENTICATED, true);
return ePerson.canLogIn() ? logInEPerson(context, ePerson) : BAD_ARGS; return ePerson.canLogIn() ? logInEPerson(context, ePerson) : BAD_ARGS;
} }
@@ -256,4 +259,14 @@ public class OidcAuthenticationBean implements AuthenticationMethod {
this.oidcClient = oidcClient; this.oidcClient = oidcClient;
} }
@Override
public boolean isUsed(final Context context, final HttpServletRequest request) {
if (request != null &&
context.getCurrentUser() != null &&
request.getAttribute(OIDC_AUTHENTICATED) != null) {
return true;
}
return false;
}
} }