Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
C
CTF
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Grzegorz
CTF
Commits
3b9ff69e
Commit
3b9ff69e
authored
Mar 08, 2016
by
Grzegorz Pietrusza
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
register adminsitrator on stratup
parent
90f47f8c
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
91 additions
and
30 deletions
+91
-30
configuration.yml
service/configuration.yml
+6
-0
CTFApplication.java
service/src/main/java/CTFApplication.java
+8
-3
ApplicationConfiguration.java
service/src/main/java/core/ApplicationConfiguration.java
+42
-18
User.java
service/src/main/java/objects/User.java
+11
-0
UsersRepository.java
service/src/main/java/repositories/UsersRepository.java
+17
-6
TasksResource.java
service/src/main/java/resources/TasksResource.java
+7
-3
No files found.
service/configuration.yml
View file @
3b9ff69e
...
...
@@ -4,6 +4,12 @@ dbName: db
flagHashMethod
:
"
MD5"
admins
:
-
name
:
"
gpietrus_admin"
password
:
"
41b450e73c974fca46911eba84e114f2"
#gpietrus md5
email
:
"
gpietrusza@gmail.com"
admin
:
true
teams
:
-
name
:
"
misiaczki"
description
:
"
misiaczki
opis"
...
...
service/src/main/java/CTFApplication.java
View file @
3b9ff69e
...
...
@@ -18,12 +18,10 @@ import objects.User;
import
org.glassfish.jersey.server.filter.RolesAllowedDynamicFeature
;
import
org.mongodb.morphia.Datastore
;
import
org.mongodb.morphia.Morphia
;
import
repositories.SolutionsRepository
;
import
repositories.TasksRepository
;
import
repositories.TeamsRepository
;
import
repositories.UsersRepository
;
import
resources.*
;
import
java.util.List
;
import
java.util.stream.Stream
;
/**
...
...
@@ -66,10 +64,17 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
public
void
run
(
ApplicationConfiguration
applicationConfiguration
,
Environment
environment
)
throws
Exception
{
injector
=
createInjector
(
applicationConfiguration
);
registerAdmins
(
applicationConfiguration
);
registerResources
(
environment
);
registerAuthFeatures
(
environment
);
}
private
void
registerAdmins
(
ApplicationConfiguration
applicationConfiguration
)
{
UsersRepository
usersRepository
=
injector
.
getInstance
(
UsersRepository
.
class
);
applicationConfiguration
.
getAdmins
().
forEach
(
usersRepository:
:
add
);
}
//todo: remove
public
class
ExampleAuthorizer
implements
Authorizer
<
User
>
{
@Override
...
...
service/src/main/java/core/ApplicationConfiguration.java
View file @
3b9ff69e
...
...
@@ -4,13 +4,12 @@ import helpers.CryptoTaskConfig;
import
helpers.WebTaskConfig
;
import
io.dropwizard.Configuration
;
import
objects.Team
;
import
objects.User
;
import
java.util.List
;
/**
* Created by gpietrus on 16.02.16.
*/
public
class
ApplicationConfiguration
extends
Configuration
{
public
class
ApplicationConfiguration
extends
Configuration
{
private
String
dbHost
;
private
int
dbPort
;
private
String
dbName
;
...
...
@@ -18,60 +17,85 @@ public class ApplicationConfiguration extends Configuration {
private
List
<
Team
>
teams
;
private
List
<
CryptoTaskConfig
>
cryptoTasks
;
private
List
<
WebTaskConfig
>
webTasks
;
private
List
<
User
>
admins
;
public
List
<
CryptoTaskConfig
>
getCryptoTasks
()
{
public
List
<
User
>
getAdmins
()
{
return
admins
;
}
public
void
setAdmins
(
List
<
User
>
admins
)
{
this
.
admins
=
admins
;
}
public
List
<
CryptoTaskConfig
>
getCryptoTasks
()
{
return
cryptoTasks
;
}
public
void
setCryptoTasks
(
List
<
CryptoTaskConfig
>
cryptoTasks
)
{
public
void
setCryptoTasks
(
List
<
CryptoTaskConfig
>
cryptoTasks
)
{
this
.
cryptoTasks
=
cryptoTasks
;
}
public
List
<
WebTaskConfig
>
getWebTasks
()
{
public
List
<
WebTaskConfig
>
getWebTasks
()
{
return
webTasks
;
}
public
void
setWebTasks
(
List
<
WebTaskConfig
>
webTasks
)
{
public
void
setWebTasks
(
List
<
WebTaskConfig
>
webTasks
)
{
this
.
webTasks
=
webTasks
;
}
public
String
getFlagHashMethod
()
{
public
String
getFlagHashMethod
()
{
return
flagHashMethod
;
}
public
List
<
Team
>
getTeams
()
{
public
List
<
Team
>
getTeams
()
{
return
teams
;
}
public
void
setTeams
(
List
<
Team
>
teams
)
{
public
void
setTeams
(
List
<
Team
>
teams
)
{
this
.
teams
=
teams
;
}
public
void
setFlagHashMethod
(
String
flagHashMethod
)
{
public
void
setFlagHashMethod
(
String
flagHashMethod
)
{
this
.
flagHashMethod
=
flagHashMethod
;
}
public
String
getDbHost
()
{
public
String
getDbHost
()
{
return
dbHost
;
}
public
void
setDbHost
(
String
dbHost
)
{
public
void
setDbHost
(
String
dbHost
)
{
this
.
dbHost
=
dbHost
;
}
public
int
getDbPort
()
{
public
int
getDbPort
()
{
return
dbPort
;
}
public
void
setDbPort
(
int
dbPort
)
{
public
void
setDbPort
(
int
dbPort
)
{
this
.
dbPort
=
dbPort
;
}
public
String
getDbName
()
{
public
String
getDbName
()
{
return
dbName
;
}
public
void
setDbName
(
String
dbName
)
{
public
void
setDbName
(
String
dbName
)
{
this
.
dbName
=
dbName
;
}
}
service/src/main/java/objects/User.java
View file @
3b9ff69e
...
...
@@ -18,6 +18,7 @@ public class User implements Principal {
private
String
name
;
private
String
password
;
private
String
email
;
private
boolean
admin
=
false
;
@JsonCreator
public
User
(
@JsonProperty
(
"name"
)
String
name
,
...
...
@@ -28,6 +29,16 @@ public class User implements Principal {
this
.
email
=
email
;
}
public
void
setAdmin
(
boolean
admin
)
{
this
.
admin
=
admin
;
}
public
boolean
isAdmin
()
{
return
admin
;
}
public
User
()
{
}
...
...
service/src/main/java/repositories/UsersRepository.java
View file @
3b9ff69e
...
...
@@ -15,7 +15,8 @@ import java.util.List;
* Created by gpietrus on 20.02.2016.
*/
@Singleton
public
class
UsersRepository
implements
Repository
{
public
class
UsersRepository
implements
Repository
{
private
Datastore
datastore
;
private
TeamsRepository
teamsRepository
;
...
...
@@ -23,7 +24,8 @@ public class UsersRepository implements Repository {
@Inject
public
UsersRepository
(
Datastore
datastore
,
TeamsRepository
teamsRepository
)
{
TeamsRepository
teamsRepository
)
{
this
.
datastore
=
datastore
;
this
.
teamsRepository
=
teamsRepository
;
try
{
...
...
@@ -33,13 +35,20 @@ public class UsersRepository implements Repository {
}
}
public
User
getUserByName
(
String
username
)
{
public
void
add
(
User
user
)
{
datastore
.
save
(
user
);
}
public
User
getUserByName
(
String
username
)
{
return
datastore
.
createQuery
(
User
.
class
)
.
field
(
"name"
).
equal
(
username
)
.
get
();
}
public
User
authenticateUser
(
BasicCredentials
basicCredentials
)
{
public
User
authenticateUser
(
BasicCredentials
basicCredentials
)
{
return
datastore
.
createQuery
(
User
.
class
)
.
field
(
"name"
).
equal
(
basicCredentials
.
getUsername
())
...
...
@@ -48,12 +57,14 @@ public class UsersRepository implements Repository {
}
@Override
public
List
getAll
()
{
public
List
getAll
()
{
return
null
;
}
@Override
public
void
initialize
()
{
public
void
initialize
()
{
}
}
service/src/main/java/resources/TasksResource.java
View file @
3b9ff69e
...
...
@@ -41,13 +41,17 @@ public class TasksResource
//todo: make it admin endpoint, any username as parameter
//todo: admin authorization
@GET
@Path
(
"my"
)
@Path
(
"my"
)
//todo: username as argument
public
Collection
<
String
>
getUserFlags
(
@Auth
User
user
)
{
Map
<
List
<
String
>,
Integer
>
userFlagsHashes
=
tasksRepository
.
getUserFlagsHashes
(
user
.
getName
());
if
(
user
.
isAdmin
())
{
return
null
;
}
/*Map<List<String>, Integer> userFlagsHashes = tasksRepository.getUserFlagsHashes(user.getName());
return userFlagsHashes.entrySet()
.stream()
.flatMap(listIntegerEntry -> listIntegerEntry.getKey().stream())
.
collect
(
Collectors
.
toList
());
.collect(Collectors.toList());*/
return
null
;
}
//todo: merge with upper
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment