Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Genesys Backend
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
45
Issues
45
List
Boards
Labels
Service Desk
Milestones
Operations
Operations
Incidents
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Genesys PGR
Genesys Backend
Commits
0ee3ab13
Commit
0ee3ab13
authored
May 28, 2017
by
Matija Obreza
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Code refactored for app-blocks:1.1-SNAPSHOT
parent
fbd1e076
Changes
69
Hide whitespace changes
Inline
Side-by-side
Showing
69 changed files
with
771 additions
and
2017 deletions
+771
-2017
.gitignore
.gitignore
+1
-0
pom.xml
pom.xml
+14
-2
src/main/java/org/genesys2/server/aspect/AclAssignerAspect.java
...in/java/org/genesys2/server/aspect/AclAssignerAspect.java
+0
-62
src/main/java/org/genesys2/server/aspect/AsAdminAspect.java
src/main/java/org/genesys2/server/aspect/AsAdminAspect.java
+2
-7
src/main/java/org/genesys2/server/exception/NoUserFoundException.java
...a/org/genesys2/server/exception/NoUserFoundException.java
+0
-54
src/main/java/org/genesys2/server/exception/NotUniqueUserException.java
...org/genesys2/server/exception/NotUniqueUserException.java
+0
-49
src/main/java/org/genesys2/server/exception/UserException.java
...ain/java/org/genesys2/server/exception/UserException.java
+0
-40
src/main/java/org/genesys2/server/listener/sample/CreateAdminListener.java
.../genesys2/server/listener/sample/CreateAdminListener.java
+3
-3
src/main/java/org/genesys2/server/model/UserRole.java
src/main/java/org/genesys2/server/model/UserRole.java
+8
-1
src/main/java/org/genesys2/server/model/impl/User.java
src/main/java/org/genesys2/server/model/impl/User.java
+5
-161
src/main/java/org/genesys2/server/persistence/domain/UserRepository.java
...rg/genesys2/server/persistence/domain/UserRepository.java
+1
-1
src/main/java/org/genesys2/server/security/ApacheLogAuditLogger.java
...va/org/genesys2/server/security/ApacheLogAuditLogger.java
+0
-46
src/main/java/org/genesys2/server/security/AuthUserDetails.java
...in/java/org/genesys2/server/security/AuthUserDetails.java
+0
-46
src/main/java/org/genesys2/server/security/lockout/AccountLockoutManager.java
...nesys2/server/security/lockout/AccountLockoutManager.java
+0
-163
src/main/java/org/genesys2/server/security/lockout/AuthenticationFailureBadCredentialsListener.java
.../lockout/AuthenticationFailureBadCredentialsListener.java
+0
-52
src/main/java/org/genesys2/server/security/lockout/AuthenticationSuccessListener.java
...erver/security/lockout/AuthenticationSuccessListener.java
+0
-60
src/main/java/org/genesys2/server/service/AclService.java
src/main/java/org/genesys2/server/service/AclService.java
+2
-2
src/main/java/org/genesys2/server/service/EMailVerificationService.java
...org/genesys2/server/service/EMailVerificationService.java
+1
-1
src/main/java/org/genesys2/server/service/PasswordPolicy.java
...main/java/org/genesys2/server/service/PasswordPolicy.java
+0
-42
src/main/java/org/genesys2/server/service/UserService.java
src/main/java/org/genesys2/server/service/UserService.java
+7
-26
src/main/java/org/genesys2/server/service/audit/SpringSecurityAuditorAware.java
...sys2/server/service/audit/SpringSecurityAuditorAware.java
+1
-1
src/main/java/org/genesys2/server/service/impl/AccessionListServiceImpl.java
...enesys2/server/service/impl/AccessionListServiceImpl.java
+1
-1
src/main/java/org/genesys2/server/service/impl/AclServiceImpl.java
...java/org/genesys2/server/service/impl/AclServiceImpl.java
+4
-8
src/main/java/org/genesys2/server/service/impl/EMailVerificationServiceImpl.java
...ys2/server/service/impl/EMailVerificationServiceImpl.java
+3
-9
src/main/java/org/genesys2/server/service/impl/GenesysServiceImpl.java
.../org/genesys2/server/service/impl/GenesysServiceImpl.java
+3
-3
src/main/java/org/genesys2/server/service/impl/InstituteServiceImpl.java
...rg/genesys2/server/service/impl/InstituteServiceImpl.java
+3
-3
src/main/java/org/genesys2/server/service/impl/OAuth2AuthorizationCodeServiceImpl.java
...rver/service/impl/OAuth2AuthorizationCodeServiceImpl.java
+6
-7
src/main/java/org/genesys2/server/service/impl/OAuth2JPATokenStoreImpl.java
...genesys2/server/service/impl/OAuth2JPATokenStoreImpl.java
+13
-13
src/main/java/org/genesys2/server/service/impl/SimplePasswordPolicy.java
...rg/genesys2/server/service/impl/SimplePasswordPolicy.java
+0
-72
src/main/java/org/genesys2/server/service/impl/TeamServiceImpl.java
...ava/org/genesys2/server/service/impl/TeamServiceImpl.java
+1
-5
src/main/java/org/genesys2/server/service/impl/TraitServiceImpl.java
...va/org/genesys2/server/service/impl/TraitServiceImpl.java
+3
-3
src/main/java/org/genesys2/server/service/impl/UserServiceImpl.java
...ava/org/genesys2/server/service/impl/UserServiceImpl.java
+59
-202
src/main/java/org/genesys2/server/servlet/controller/GoogleSocialController.java
...ys2/server/servlet/controller/GoogleSocialController.java
+8
-6
src/main/java/org/genesys2/server/servlet/controller/JspHelper.java
...ava/org/genesys2/server/servlet/controller/JspHelper.java
+6
-6
src/main/java/org/genesys2/server/servlet/controller/RequestController.java
...genesys2/server/servlet/controller/RequestController.java
+1
-1
src/main/java/org/genesys2/server/servlet/controller/UserProfileController.java
...sys2/server/servlet/controller/UserProfileController.java
+11
-18
src/main/java/org/genesys2/server/servlet/controller/UserRegistrationController.java
...server/servlet/controller/UserRegistrationController.java
+3
-3
src/main/java/org/genesys2/server/servlet/controller/admin/UserProfileController.java
...erver/servlet/controller/admin/UserProfileController.java
+14
-20
src/main/java/org/genesys2/server/servlet/controller/rdf/RdfBaseController.java
...sys2/server/servlet/controller/rdf/RdfBaseController.java
+10
-10
src/main/java/org/genesys2/server/servlet/controller/rest/RestController.java
...nesys2/server/servlet/controller/rest/RestController.java
+4
-4
src/main/java/org/genesys2/server/servlet/controller/rest/UserController.java
...nesys2/server/servlet/controller/rest/UserController.java
+5
-3
src/main/java/org/genesys2/server/servlet/controller/rest/UsersController.java
...esys2/server/servlet/controller/rest/UsersController.java
+6
-10
src/main/java/org/genesys2/server/servlet/controller/rest/model/UserChangedDataJson.java
...er/servlet/controller/rest/model/UserChangedDataJson.java
+7
-3
src/main/java/org/genesys2/server/servlet/controller/rest/serialization/UserSerializer.java
...servlet/controller/rest/serialization/UserSerializer.java
+1
-1
src/main/java/org/genesys2/spring/DefaultRolesPrefixPostProcessor.java
.../org/genesys2/spring/DefaultRolesPrefixPostProcessor.java
+0
-43
src/main/java/org/genesys2/spring/SecurityContextUtil.java
src/main/java/org/genesys2/spring/SecurityContextUtil.java
+0
-47
src/main/java/org/genesys2/spring/config/ApplicationConfig.java
...in/java/org/genesys2/spring/config/ApplicationConfig.java
+1
-9
src/main/java/org/genesys2/spring/config/SpringAclConfig.java
...main/java/org/genesys2/spring/config/SpringAclConfig.java
+4
-3
src/main/java/org/genesys2/spring/config/SpringCacheConfig.java
...in/java/org/genesys2/spring/config/SpringCacheConfig.java
+1
-1
src/main/java/org/genesys2/spring/config/SpringSecurityConfig.java
...java/org/genesys2/spring/config/SpringSecurityConfig.java
+10
-17
src/main/resources/spring/spring.properties
src/main/resources/spring/spring.properties
+1
-1
src/test/java/org/genesys2/server/persistence/domain/mock/TraitServiceMock.java
...sys2/server/persistence/domain/mock/TraitServiceMock.java
+3
-3
src/test/java/org/genesys2/server/service/impl/GenesysServicesTest.java
...org/genesys2/server/service/impl/GenesysServicesTest.java
+9
-8
src/test/java/org/genesys2/tests/resttests/AbstractRestTest.java
...t/java/org/genesys2/tests/resttests/AbstractRestTest.java
+8
-6
src/test/java/org/genesys2/tests/resttests/AccessionControllerTest.java
...org/genesys2/tests/resttests/AccessionControllerTest.java
+9
-14
src/test/java/org/genesys2/tests/resttests/DatasetControllerTest.java
...a/org/genesys2/tests/resttests/DatasetControllerTest.java
+9
-14
src/test/java/org/genesys2/tests/resttests/LookupControllerTest.java
...va/org/genesys2/tests/resttests/LookupControllerTest.java
+1
-1
src/test/java/org/genesys2/tests/resttests/OAuthManagementControllerTest.java
...nesys2/tests/resttests/OAuthManagementControllerTest.java
+191
-228
src/test/java/org/genesys2/tests/resttests/PermissionControllerTest.java
...rg/genesys2/tests/resttests/PermissionControllerTest.java
+3
-3
src/test/java/org/genesys2/tests/resttests/RequestsControllerTest.java
.../org/genesys2/tests/resttests/RequestsControllerTest.java
+1
-1
src/test/java/org/genesys2/tests/resttests/TokenControllerTest.java
...ava/org/genesys2/tests/resttests/TokenControllerTest.java
+17
-23
src/test/java/org/genesys2/tests/resttests/TraitsControllerTest.java
...va/org/genesys2/tests/resttests/TraitsControllerTest.java
+4
-10
src/test/java/org/genesys2/tests/resttests/UserControllerTest.java
...java/org/genesys2/tests/resttests/UserControllerTest.java
+4
-10
src/test/java/org/genesys2/tests/resttests/UsersControllerTest.java
...ava/org/genesys2/tests/resttests/UsersControllerTest.java
+201
-235
src/test/java/org/genesys2/tests/unit/AbstractServicesTest.java
...st/java/org/genesys2/tests/unit/AbstractServicesTest.java
+6
-6
src/test/java/org/genesys2/tests/unit/AuthUserDetailsServiceTest.java
...a/org/genesys2/tests/unit/AuthUserDetailsServiceTest.java
+4
-4
src/test/java/org/genesys2/tests/unit/EmailVerificationServiceTest.java
...org/genesys2/tests/unit/EmailVerificationServiceTest.java
+13
-22
src/test/java/org/genesys2/tests/unit/TeamServiceTest.java
src/test/java/org/genesys2/tests/unit/TeamServiceTest.java
+5
-11
src/test/java/org/genesys2/tests/unit/UserServiceTest.java
src/test/java/org/genesys2/tests/unit/UserServiceTest.java
+49
-67
No files found.
.gitignore
View file @
0ee3ab13
...
...
@@ -24,3 +24,4 @@ npm-debug.log
.settings
.pmd
node_tmp
effective.pom
pom.xml
View file @
0ee3ab13
...
...
@@ -58,7 +58,7 @@
<snippetsDirectory>
${project.build.directory}/generated-snippets
</snippetsDirectory>
<junit.version>
4.12
</junit.version>
<application.blocks.version>
1.1-SNAPSHOT
</application.blocks.version>
<commons.beanutils.version>
1.9.2
</commons.beanutils.version>
<commons.collections.version>
3.2.1
</commons.collections.version>
<commons.fileupload.version>
1.3.1
</commons.fileupload.version>
...
...
@@ -287,8 +287,20 @@
<version>
1.9.4.RELEASE
</version>
</dependency>
<!-- Hibernate dependencies -->
<!-- App blocks -->
<dependency>
<groupId>
org.genesys-pgr
</groupId>
<artifactId>
application-blocks-auditlog
</artifactId>
<version>
${application.blocks.version}
</version>
</dependency>
<dependency>
<groupId>
org.genesys-pgr
</groupId>
<artifactId>
application-blocks-security
</artifactId>
<version>
${application.blocks.version}
</version>
</dependency>
<!-- Hibernate dependencies -->
<dependency>
<groupId>
org.hibernate
</groupId>
...
...
src/main/java/org/genesys2/server/aspect/AclAssignerAspect.java
deleted
100644 → 0
View file @
fbd1e076
/**
* Copyright 2014 Global Crop Diversity Trust
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
package
org.genesys2.server.aspect
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.annotation.Around
;
import
org.aspectj.lang.annotation.Aspect
;
import
org.genesys2.server.model.AclAwareModel
;
import
org.genesys2.server.service.AclService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
@Aspect
@Component
public
class
AclAssignerAspect
{
private
static
final
Log
LOG
=
LogFactory
.
getLog
(
AclAssignerAspect
.
class
);
@Autowired
private
AclService
aclService
;
@Around
(
"execution(* org.genesys2.server.persistence.domain.*.save(..))"
)
public
Object
aroundSaveAclObject
(
ProceedingJoinPoint
pjp
)
throws
Throwable
{
final
Object
arg0
=
pjp
.
getArgs
()[
0
];
boolean
needsAcl
=
false
;
if
(
arg0
instanceof
AclAwareModel
)
{
final
AclAwareModel
aclModel
=
(
AclAwareModel
)
arg0
;
needsAcl
=
aclModel
.
getId
()
==
null
;
}
try
{
final
Object
retval
=
pjp
.
proceed
();
if
(
needsAcl
)
{
final
AclAwareModel
aclModel
=
(
AclAwareModel
)
retval
;
LOG
.
warn
(
"Inserting ACL entries for owner: "
+
aclModel
.
getId
());
aclService
.
addCreatorPermissions
(
aclModel
);
}
return
retval
;
}
finally
{
// Nothing to do here
}
}
}
src/main/java/org/genesys2/server/aspect/AsAdminAspect.java
View file @
0ee3ab13
...
...
@@ -25,7 +25,6 @@ import org.aspectj.lang.annotation.Around;
import
org.aspectj.lang.annotation.Aspect
;
import
org.genesys2.server.model.UserRole
;
import
org.genesys2.server.model.impl.User
;
import
org.genesys2.server.security.AuthUserDetails
;
import
org.genesys2.server.service.UserService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.core.Authentication
;
...
...
@@ -85,13 +84,9 @@ public class AsAdminAspect {
SYS_ADMIN
=
new
PreAuthenticatedAuthenticationToken
(
"SYS_ADMIN"
,
null
,
Arrays
.
asList
(
new
SimpleGrantedAuthority
(
UserRole
.
ADMINISTRATOR
.
getName
())));
}
else
{
LOG
.
warn
(
"Got SYS_ADMIN account: "
+
sysUser
);
LOG
.
warn
(
"Got SYS_ADMIN account: "
+
sysUser
+
" with roles="
+
sysUser
.
getAuthorities
()
);
final
AuthUserDetails
userDetails
=
new
AuthUserDetails
(
sysUser
.
getUuid
(),
""
,
Arrays
.
asList
(
new
SimpleGrantedAuthority
(
UserRole
.
ADMINISTRATOR
.
getName
())));
userDetails
.
setUser
(
sysUser
);
SYS_ADMIN
=
new
PreAuthenticatedAuthenticationToken
(
userDetails
,
null
,
userDetails
.
getAuthorities
());
SYS_ADMIN
=
new
PreAuthenticatedAuthenticationToken
(
sysUser
,
null
,
sysUser
.
getAuthorities
());
}
}
...
...
src/main/java/org/genesys2/server/exception/NoUserFoundException.java
deleted
100644 → 0
View file @
fbd1e076
/**
* Copyright 2014 Global Crop Diversity Trust
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
package
org.genesys2.server.exception
;
public
class
NoUserFoundException
extends
UserException
{
private
static
final
long
serialVersionUID
=
-
3218537334751840421L
;
public
NoUserFoundException
()
{
}
public
NoUserFoundException
(
String
message
)
{
super
(
message
);
}
public
NoUserFoundException
(
String
message
,
Throwable
cause
)
{
super
(
message
,
cause
);
}
public
NoUserFoundException
(
Throwable
cause
)
{
super
(
cause
);
}
public
NoUserFoundException
(
long
modelId
)
{
this
.
modelId
=
modelId
;
}
public
NoUserFoundException
(
Throwable
cause
,
long
modelId
)
{
super
(
cause
);
this
.
modelId
=
modelId
;
}
private
long
modelId
;
public
long
getModelId
()
{
return
modelId
;
}
}
src/main/java/org/genesys2/server/exception/NotUniqueUserException.java
deleted
100644 → 0
View file @
fbd1e076
/**
* Copyright 2014 Global Crop Diversity Trust
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
package
org.genesys2.server.exception
;
public
class
NotUniqueUserException
extends
UserException
{
private
static
final
long
serialVersionUID
=
-
3260458819774485495L
;
public
NotUniqueUserException
()
{
}
public
NotUniqueUserException
(
String
message
)
{
super
(
message
);
}
public
NotUniqueUserException
(
String
message
,
Throwable
cause
)
{
super
(
message
,
cause
);
}
public
NotUniqueUserException
(
Throwable
cause
)
{
super
(
cause
);
}
public
NotUniqueUserException
(
Throwable
cause
,
String
email
)
{
super
(
cause
);
this
.
email
=
email
;
}
private
String
email
;
public
String
getEmail
()
{
return
email
;
}
}
src/main/java/org/genesys2/server/exception/UserException.java
deleted
100644 → 0
View file @
fbd1e076
/**
* Copyright 2014 Global Crop Diversity Trust
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
package
org.genesys2.server.exception
;
import
org.genesys2.server.ApplicationException
;
public
class
UserException
extends
ApplicationException
{
private
static
final
long
serialVersionUID
=
-
5046893564893762245L
;
public
UserException
()
{
super
();
}
public
UserException
(
String
message
)
{
super
(
message
);
}
public
UserException
(
String
message
,
Throwable
cause
)
{
super
(
message
,
cause
);
}
public
UserException
(
Throwable
cause
)
{
super
(
cause
);
}
}
src/main/java/org/genesys2/server/listener/sample/CreateAdminListener.java
View file @
0ee3ab13
...
...
@@ -19,11 +19,11 @@ package org.genesys2.server.listener.sample;
import
java.util.HashSet
;
import
java.util.Set
;
import
org.genesys2.server.exception.UserException
;
import
org.genesys.blocks.security.UserException
;
import
org.genesys.blocks.security.service.PasswordPolicy.PasswordPolicyException
;
import
org.genesys2.server.listener.RunAsAdminListener
;
import
org.genesys2.server.model.UserRole
;
import
org.genesys2.server.model.impl.User
;
import
org.genesys2.server.service.PasswordPolicy.PasswordPolicyException
;
import
org.genesys2.server.service.UserService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.PageRequest
;
...
...
@@ -58,7 +58,7 @@ public class CreateAdminListener extends RunAsAdminListener {
user
.
setSystemAccount
(
systemAccount
);
user
.
setEmail
(
email
);
user
.
setPassword
(
passwd
);
user
.
setName
(
name
);
user
.
set
Full
Name
(
name
);
final
Set
<
UserRole
>
userRoles
=
new
HashSet
<
UserRole
>();
userRoles
.
add
(
UserRole
.
ADMINISTRATOR
);
user
.
setRoles
(
userRoles
);
...
...
src/main/java/org/genesys2/server/model/UserRole.java
View file @
0ee3ab13
...
...
@@ -16,7 +16,9 @@
package
org.genesys2.server.model
;
public
enum
UserRole
{
import
org.springframework.security.core.GrantedAuthority
;
public
enum
UserRole
implements
GrantedAuthority
{
USER
(
"User"
),
ADMINISTRATOR
(
"Administrator"
),
VALIDATEDUSER
(
"Validated user"
),
VETTEDUSER
(
"Vetted user"
),
CONTENTMANAGER
(
"Content Manager"
);
String
label
;
...
...
@@ -41,4 +43,9 @@ public enum UserRole {
public
String
getName
()
{
return
name
();
}
@Override
public
String
getAuthority
()
{
return
"ROLE_"
+
getName
();
}
}
src/main/java/org/genesys2/server/model/impl/User.java
View file @
0ee3ab13
...
...
@@ -17,181 +17,47 @@
package
org.genesys2.server.model.impl
;
import
java.beans.Transient
;
import
java.util.Date
;
import
java.util.HashSet
;
import
java.util.Set
;
import
java.util.UUID
;
import
javax.persistence.Cacheable
;
import
javax.persistence.CollectionTable
;
import
javax.persistence.Column
;
import
javax.persistence.ElementCollection
;
import
javax.persistence.Entity
;
import
javax.persistence.EnumType
;
import
javax.persistence.Enumerated
;
import
javax.persistence.JoinColumn
;
import
javax.persistence.PrePersist
;
import
javax.persistence.Table
;
import
javax.persistence.Temporal
;
import
javax.persistence.TemporalType
;
import
net.sf.oval.constraint.Email
;
import
net.sf.oval.constraint.NotEmpty
;
import
net.sf.oval.constraint.NotNull
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
org.genesys
2.server.model.BusinessModel
;
import
org.genesys
.blocks.security.model.BasicUser
;
import
org.genesys2.server.model.UserRole
;
import
org.genesys2.server.servlet.controller.rest.serialization.UserSerializer
;
import
org.hibernate.annotations.Cache
;
import
org.hibernate.annotations.CacheConcurrencyStrategy
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
@Cacheable
@Entity
@Table
(
name
=
"\"user\""
)
@JsonSerialize
(
using
=
UserSerializer
.
class
)
public
class
User
extends
B
usinessModel
{
public
class
User
extends
B
asicUser
<
UserRole
>
{
private
static
final
long
serialVersionUID
=
4564013753931115445L
;
@Column
(
length
=
36
,
unique
=
true
)
private
String
uuid
;
// validation
@NotNull
(
message
=
"sample.error.not.null"
)
@NotEmpty
(
message
=
"sample.error.not.empty"
)
@Email
(
message
=
"sample.error.wrong.email"
)
// hibernate
@Column
(
name
=
"email"
,
nullable
=
false
,
unique
=
true
)
private
String
email
;
// validation
@NotNull
(
message
=
"sample.error.not.null"
)
@NotEmpty
(
message
=
"sample.error.not.empty"
)
// hibernate
@Column
(
name
=
"password"
,
nullable
=
false
)
private
String
password
;
// validation
@NotNull
(
message
=
"sample.error.not.null"
)
@NotEmpty
(
message
=
"sample.error.not.empty"
)
// hibernate
@Column
(
name
=
"name"
,
nullable
=
false
)
private
String
name
;
@Enumerated
(
EnumType
.
STRING
)
@Column
(
name
=
"loginType"
,
length
=
10
,
nullable
=
false
,
columnDefinition
=
"VARCHAR(10) DEFAULT 'PASSWORD'"
)
private
LoginType
loginType
=
LoginType
.
PASSWORD
;
// validation
@Cache
(
usage
=
CacheConcurrencyStrategy
.
READ_WRITE
)
@ElementCollection
@Enumerated
(
EnumType
.
STRING
)
@CollectionTable
(
name
=
"user_role"
,
joinColumns
=
@JoinColumn
(
name
=
"user_id"
))
@Column
(
name
=
"user_role"
)
private
Set
<
UserRole
>
roles
=
new
HashSet
<
UserRole
>();
/**
* System accounts cannot log in through web or otherwise.
*/
@Column
(
nullable
=
false
,
updatable
=
false
,
name
=
"sys"
)
private
boolean
systemAccount
=
false
;
@Column
private
boolean
enabled
=
true
;
@Temporal
(
TemporalType
.
TIMESTAMP
)
@Column
(
nullable
=
true
)
private
Date
lockedUntil
;
@PrePersist
void
ensureUUID
()
{
if
(
this
.
uuid
==
null
)
{
this
.
uuid
=
UUID
.
nameUUIDFromBytes
(
email
.
getBytes
()).
toString
();
this
.
uuid
=
UUID
.
nameUUIDFromBytes
(
getEmail
()
.
getBytes
()).
toString
();
}
}
public
String
getEmail
()
{
return
email
;
}
public
void
setEmail
(
String
email
)
{
this
.
email
=
email
;
}
public
String
getPassword
()
{
return
password
;
}
public
void
setPassword
(
String
password
)
{
this
.
password
=
password
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
LoginType
getLoginType
()
{
return
loginType
;
}
public
void
setLoginType
(
LoginType
loginType
)
{
this
.
loginType
=
loginType
;
}
public
Set
<
UserRole
>
getRoles
()
{
return
roles
;
}
public
void
setRoles
(
Set
<
UserRole
>
roles
)
{
this
.
roles
=
roles
;
}
@Override
public
boolean
equals
(
Object
o
)
{
if
(
this
==
o
)
{
return
true
;
}
if
(!(
o
instanceof
User
))
{
return
false
;
}
final
User
user
=
(
User
)
o
;
if
(
email
!=
null
?
!
email
.
equals
(
user
.
email
)
:
user
.
email
!=
null
)
{
return
false
;
}
if
(
name
!=
null
?
!
name
.
equals
(
user
.
name
)
:
user
.
name
!=
null
)
{
return
false
;
}
if
(
password
!=
null
?
!
password
.
equals
(
user
.
password
)
:
user
.
password
!=
null
)
{
return
false
;
}
if
(
roles
!=
null
?
!
roles
.
equals
(
user
.
roles
)
:
user
.
roles
!=
null
)
{
return
false
;
}
return
true
;
}
@Override
public
int
hashCode
()
{
int
result
=
email
!=
null
?
email
.
hashCode
()
:
0
;
result
=
31
*
result
+
(
password
!=
null
?
password
.
hashCode
()
:
0
);
result
=
31
*
result
+
(
name
!=
null
?
name
.
hashCode
()
:
0
);
result
=
31
*
result
+
(
roles
!=
null
?
roles
.
hashCode
()
:
0
);
return
result
;
}
@Override
public
String
toString
()
{
return
"User id="
+
id
+
" email="
+
email
;
return
"User id="
+
getId
()
+
" email="
+
getEmail
()
;
}
public
String
getUuid
()
{
...
...
@@ -210,28 +76,6 @@ public class User extends BusinessModel {
return
systemAccount
;
}
public
boolean
isEnabled
()
{
return
this
.
enabled
;
}
public
void
setEnabled
(
boolean
enabled
)
{
this
.
enabled
=
enabled
;
}
public
Date
getLockedUntil
()
{
return
this
.
lockedUntil
;
}
public
void
setLockedUntil
(
Date
lockedUntil
)
{
this
.
lockedUntil
=
lockedUntil
;
}
@Transient
public
boolean
isAccountLocked
()
{
return
this
.
lockedUntil
!=
null
&&
this
.
lockedUntil
.
after
(
new
Date
());
}
@Transient
public
boolean
isAccountExpired
()
{
// We don't support account expiration
return
false
;
...
...
src/main/java/org/genesys2/server/persistence/domain/User
Persistence
.java
→
src/main/java/org/genesys2/server/persistence/domain/User
Repository
.java
View file @
0ee3ab13
...
...
@@ -25,7 +25,7 @@ import org.springframework.data.jpa.repository.Query;
import
org.springframework.transaction.annotation.Transactional
;
@Transactional
public
interface
User
Persistence
extends
JpaRepository
<
User
,
Long
>
{
public
interface
User
Repository
extends
JpaRepository
<
User
,
Long
>
{
@Query
(
"select u from User u where u.email = ?1 and u.systemAccount = false"
)
User
findByEmail
(
String
email
);
...
...
src/main/java/org/genesys2/server/security/ApacheLogAuditLogger.java
deleted
100644 → 0
View file @
fbd1e076
/**
* Copyright 2014 Global Crop Diversity Trust
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
package
org.genesys2.server.security
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.springframework.security.acls.domain.AuditLogger
;
import
org.springframework.security.acls.model.AccessControlEntry
;
import
org.springframework.security.acls.model.AuditableAccessControlEntry
;
import
org.springframework.util.Assert
;
// TODO Not using slf4j, rename
public
class
ApacheLogAuditLogger
implements
AuditLogger
{
private
static
final
Log
LOG
=
LogFactory
.
getLog
(
ApacheLogAuditLogger
.
class
);
@Override
public
void
logIfNeeded
(
boolean
granted
,
AccessControlEntry
ace
)
{
Assert
.
notNull
(
ace
,
"AccessControlEntry required"
);
if
(
ace
instanceof
AuditableAccessControlEntry
)
{
final
AuditableAccessControlEntry
auditableAce
=
(
AuditableAccessControlEntry
)
ace
;
if
(
granted
&&
auditableAce
.
isAuditSuccess
())
{
LOG
.
debug
(
"GRANTED due to ACE: "
+
ace
);
}
else
if
(!
granted
&&
auditableAce
.
isAuditFailure
())
{
LOG
.
debug
(
"DENIED due to ACE: "
+
ace
);
}
}
}
}
src/main/java/org/genesys2/server/security/AuthUserDetails.java
deleted
100644 → 0
View file @
fbd1e076
/**
* Copyright 2014 Global Crop Diversity Trust
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*