Skip to content

Commit 823a299

Browse files
authored
Merge pull request #234 from Open-MBEE/release/4.0.16
Release/4.0.16
2 parents 376ac8b + 8079d44 commit 823a299

File tree

12 files changed

+96
-22
lines changed

12 files changed

+96
-22
lines changed

.github/codeql.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
query-filters:
2+
- exclude:
3+
id: java/spring-disabled-csrf-protection

.github/workflows/codeql.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: "CodeQL"
2+
3+
on:
4+
push:
5+
branches: [ "develop", "master" ]
6+
pull_request:
7+
branches: [ "develop" ]
8+
schedule:
9+
- cron: "4 23 * * 1"
10+
11+
jobs:
12+
analyze:
13+
name: Analyze
14+
runs-on: ubuntu-latest
15+
permissions:
16+
actions: read
17+
contents: read
18+
security-events: write
19+
20+
strategy:
21+
fail-fast: false
22+
matrix:
23+
language: [ java ]
24+
25+
steps:
26+
- name: Checkout
27+
uses: actions/checkout@v3
28+
29+
- name: Setup Java
30+
uses: actions/setup-java@v3
31+
with:
32+
distribution: temurin
33+
java-version: 11
34+
35+
- name: Initialize CodeQL
36+
uses: github/codeql-action/init@v2
37+
with:
38+
languages: ${{ matrix.language }}
39+
config-file: ./.github/codeql.yml
40+
queries: +security-and-quality
41+
42+
- name: Autobuild
43+
uses: github/codeql-action/autobuild@v2
44+
45+
- name: Perform CodeQL Analysis
46+
uses: github/codeql-action/analyze@v2
47+
with:
48+
category: "/language:${{ matrix.language }}"

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version=4.0.15
1+
version=4.0.16
22
group=org.openmbee.mms
33

44
springBootVersion=2.6.7

groups/src/main/java/org/openmbee/mms/groups/controllers/LocalGroupsController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ public GroupUpdateResponse updateGroupUsers(@PathVariable String group,
126126
response.setGroup(group);
127127

128128
groupUpdateRequest.getUsers().forEach(newUser -> {
129-
User user = userRepository.findByUsername(newUser).orElse(null);
129+
User user = userRepository.findByUsernameIgnoreCase(newUser).orElse(null);
130130
if (user != null) {
131131

132132
if (groupUpdateRequest.getAction() == Action.ADD) {

ldap/README.rst

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Configuration
1515
The base string to use. Required.
1616

1717
ldap.provider.url
18-
The provider url, including the base. Required.
18+
The provider url. Required.
1919

2020
ldap.provider.userdn
2121
The userdn to use to authenticate to the provider. Optional.
@@ -24,7 +24,9 @@ Configuration
2424
The password to use to authenticate to the provider. Optional.
2525

2626
ldap.user.dn.pattern
27-
The dn pattern for the user. Required.
27+
The dn pattern for the user. Required. Can provide multiple separated by `;`
28+
29+
| `Default: uid={0}`
2830
2931
ldap.user.attributes.username
3032
The attribute to use for the username. Optional.
@@ -36,11 +38,33 @@ Configuration
3638

3739
| `Default: mail`
3840
41+
ldap.user.attributes.firstname
42+
The attribute to use for the first name. Optional.
43+
44+
| `Default: givenname`
45+
46+
ldap.user.attributes.lastname
47+
The attribute to use for the last name. Optional.
48+
49+
| `Default: sn`
50+
3951
ldap.group.role.attribute
4052
The attribute to use for the group role. Optional.
4153

54+
| `Default: cn`
55+
4256
ldap.group.search.base
4357
The base for group search. Optional.
4458

4559
ldap.group.search.filter
4660
The search filter for group search. Optional.
61+
62+
| `Default: (uniqueMember={0})`
63+
64+
ldap.user.search.base
65+
Base for user search. Optional.
66+
67+
ldap.user.search.filter
68+
Filter for user search. Optional
69+
70+
| `Default: (uid={0})`

ldap/src/main/java/org/openmbee/mms/ldap/LdapSecurityConfig.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import org.springframework.security.core.authority.AuthorityUtils;
3030
import org.springframework.security.core.authority.SimpleGrantedAuthority;
3131
import org.springframework.security.ldap.SpringSecurityLdapTemplate;
32-
import org.springframework.security.ldap.authentication.LdapAuthenticationProvider;
3332
import org.springframework.security.ldap.authentication.ad.ActiveDirectoryLdapAuthenticationProvider;
3433
import org.springframework.security.ldap.userdetails.LdapAuthoritiesPopulator;
3534
import org.springframework.transaction.annotation.EnableTransactionManagement;
@@ -155,7 +154,7 @@ private CustomLdapAuthoritiesPopulator(BaseLdapPathContextSource ldapContextSour
155154
public Collection<? extends GrantedAuthority> getGrantedAuthorities(
156155
DirContextOperations userData, String username) {
157156
logger.debug("Populating authorities using LDAP");
158-
Optional<User> userOptional = userRepository.findByUsername(username);
157+
Optional<User> userOptional = userRepository.findByUsernameIgnoreCase(username);
159158

160159
if (userOptional.isEmpty()) {
161160
logger.info("No user record for {} in the userRepository, creating...", userData.getDn());

localuser/src/main/java/org/openmbee/mms/localuser/security/UserDetailsServiceImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public void setPasswordEncoder(PasswordEncoder passwordEncoder) {
3131

3232
@Override
3333
public UserDetailsImpl loadUserByUsername(String username) throws UsernameNotFoundException {
34-
Optional<User> user = userRepository.findByUsername(username);
34+
Optional<User> user = userRepository.findByUsernameIgnoreCase(username);
3535

3636
if (!user.isPresent()) {
3737
throw new UsernameNotFoundException(
@@ -59,7 +59,7 @@ public User register(UserCreateRequest req) {
5959

6060
@Transactional
6161
public void changeUserPassword(String username, String password, boolean asAdmin) {
62-
Optional<User> userOptional = userRepository.findByUsername(username);
62+
Optional<User> userOptional = userRepository.findByUsernameIgnoreCase(username);
6363
if(! userOptional.isPresent()) {
6464
throw new UsernameNotFoundException(
6565
String.format("No user found with username '%s'.", username));

permissions/src/main/java/org/openmbee/mms/permissions/delegation/DefaultBranchPermissionsDelegate.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public void initializePermissions(String creator) {
9393
@Override
9494
public void initializePermissions(String creator, boolean inherit) {
9595

96-
Optional<User> user = getUserRepo().findByUsername(creator);
96+
Optional<User> user = getUserRepo().findByUsernameIgnoreCase(creator);
9797
Optional<Role> role = getRoleRepo().findByName("ADMIN");
9898

9999
if (!user.isPresent()) {
@@ -131,7 +131,7 @@ public PermissionUpdateResponse updateUserPermissions(PermissionUpdateRequest re
131131
switch(req.getAction()) {
132132
case MODIFY:
133133
for (PermissionUpdateRequest.Permission p: req.getPermissions()) {
134-
Optional<User> user = getUserRepo().findByUsername(p.getName());
134+
Optional<User> user = getUserRepo().findByUsernameIgnoreCase(p.getName());
135135
Optional<Role> role = getRoleRepo().findByName(p.getRole());
136136
if (!user.isPresent() || !role.isPresent()) {
137137
//throw exception or skip
@@ -160,7 +160,7 @@ public PermissionUpdateResponse updateUserPermissions(PermissionUpdateRequest re
160160
branchUserPermRepo.findAllByBranchAndInherited(branch, false));
161161
branchUserPermRepo.deleteByBranchAndInherited(branch, false);
162162
for (PermissionUpdateRequest.Permission p: req.getPermissions()) {
163-
Optional<User> user = getUserRepo().findByUsername(p.getName());
163+
Optional<User> user = getUserRepo().findByUsernameIgnoreCase(p.getName());
164164
Optional<Role> role = getRoleRepo().findByName(p.getRole());
165165
if (!user.isPresent() || !role.isPresent()) {
166166
//throw exception or skip
@@ -174,7 +174,7 @@ public PermissionUpdateResponse updateUserPermissions(PermissionUpdateRequest re
174174
case REMOVE:
175175
Set<String> users = new HashSet<>();
176176
req.getPermissions().forEach(p -> {
177-
Optional<User> user = getUserRepo().findByUsername(p.getName());
177+
Optional<User> user = getUserRepo().findByUsernameIgnoreCase(p.getName());
178178
if(! user.isPresent()) {
179179
//throw or skip;
180180
return;

permissions/src/main/java/org/openmbee/mms/permissions/delegation/DefaultOrgPermissionsDelegate.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public void initializePermissions(String creator, boolean inherit) {
8282
throw new IllegalArgumentException("Cannot inherit permissions for an Org");
8383
}
8484

85-
Optional<User> user = getUserRepo().findByUsername(creator);
85+
Optional<User> user = getUserRepo().findByUsernameIgnoreCase(creator);
8686
Optional<Role> role = getRoleRepo().findByName(AuthorizationConstants.ADMIN);
8787

8888
if (!user.isPresent()) {
@@ -116,7 +116,7 @@ public PermissionUpdateResponse updateUserPermissions(PermissionUpdateRequest re
116116
switch(req.getAction()) {
117117
case MODIFY:
118118
for (PermissionUpdateRequest.Permission p: req.getPermissions()) {
119-
Optional<User> user = getUserRepo().findByUsername(p.getName());
119+
Optional<User> user = getUserRepo().findByUsernameIgnoreCase(p.getName());
120120
Optional<Role> role = getRoleRepo().findByName(p.getRole());
121121
if (!user.isPresent() || !role.isPresent()) {
122122
//throw exception or skip
@@ -146,7 +146,7 @@ public PermissionUpdateResponse updateUserPermissions(PermissionUpdateRequest re
146146
orgUserPermRepo.deleteByOrganization(organization);
147147

148148
for (PermissionUpdateRequest.Permission p: req.getPermissions()) {
149-
Optional<User> user = getUserRepo().findByUsername(p.getName());
149+
Optional<User> user = getUserRepo().findByUsernameIgnoreCase(p.getName());
150150
Optional<Role> role = getRoleRepo().findByName(p.getRole());
151151
if (!user.isPresent() || !role.isPresent()) {
152152
//throw exception or skip
@@ -160,7 +160,7 @@ public PermissionUpdateResponse updateUserPermissions(PermissionUpdateRequest re
160160
case REMOVE:
161161
Set<String> users = new HashSet<>();
162162
req.getPermissions().forEach(p -> {
163-
Optional<User> user = getUserRepo().findByUsername(p.getName());
163+
Optional<User> user = getUserRepo().findByUsernameIgnoreCase(p.getName());
164164
if(! user.isPresent()) {
165165
//throw or skip;
166166
return;

permissions/src/main/java/org/openmbee/mms/permissions/delegation/DefaultProjectPermissionsDelegate.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public void initializePermissions(String creator) {
9595

9696
@Override
9797
public void initializePermissions(String creator, boolean inherit) {
98-
Optional<User> user = getUserRepo().findByUsername(creator);
98+
Optional<User> user = getUserRepo().findByUsernameIgnoreCase(creator);
9999
Optional<Role> role = getRoleRepo().findByName("ADMIN");
100100

101101
if (!user.isPresent()) {
@@ -133,7 +133,7 @@ public PermissionUpdateResponse updateUserPermissions(PermissionUpdateRequest re
133133
switch(req.getAction()) {
134134
case MODIFY:
135135
for (PermissionUpdateRequest.Permission p: req.getPermissions()) {
136-
Optional<User> user = getUserRepo().findByUsername(p.getName());
136+
Optional<User> user = getUserRepo().findByUsernameIgnoreCase(p.getName());
137137
Optional<Role> role = getRoleRepo().findByName(p.getRole());
138138
if (!user.isPresent() || !role.isPresent()) {
139139
//throw exception or skip
@@ -162,7 +162,7 @@ public PermissionUpdateResponse updateUserPermissions(PermissionUpdateRequest re
162162
projectUserPermRepo.findAllByProjectAndInherited(project, false));
163163
projectUserPermRepo.deleteByProjectAndInherited(project, false);
164164
for (PermissionUpdateRequest.Permission p: req.getPermissions()) {
165-
Optional<User> user = getUserRepo().findByUsername(p.getName());
165+
Optional<User> user = getUserRepo().findByUsernameIgnoreCase(p.getName());
166166
Optional<Role> role = getRoleRepo().findByName(p.getRole());
167167
if (!user.isPresent() || !role.isPresent()) {
168168
//throw exception or skip
@@ -176,7 +176,7 @@ public PermissionUpdateResponse updateUserPermissions(PermissionUpdateRequest re
176176
case REMOVE:
177177
Set<String> users = new HashSet<>();
178178
req.getPermissions().forEach(p -> {
179-
Optional<User> user = getUserRepo().findByUsername(p.getName());
179+
Optional<User> user = getUserRepo().findByUsernameIgnoreCase(p.getName());
180180
if(! user.isPresent()) {
181181
//throw or skip;
182182
return;

0 commit comments

Comments
 (0)