Integrate Security Layer in Spring Microservices Backend with KeyCloak and minimalistic react native app
Budget: €30 – €250 EUR
Tasks:
- Implementing a security layer for the Java Spring Boot microservice backend
- create a minimalistic react-native app and integrate the login functionality
- the google user should be persisted via a backend functionality in the mongodb, if the user logs in
- Integrate the login functionality
- minimalistic description for how to configure KeyCloak and Google for usage
INFO:
- NO keycloak, mongodb, google instance is provided, just use a local instance for developing reasons
- NO react-native app will be provided
- the mongodb data will be provided as mongodump
- the spring boot java microservices backend files with the following services will be provided:
-- configserver
-- eurekaserver
-- gatewayserver
-- recipeservice
Backend Tasks in Detail:
Secure Recipe Service Access:
- Ensure the Recipe Service can only be accessed via the Gateway Server.
- Access must be restricted to users authenticated through Google Sign-In.
Role-Based Access Control:
- The getRecipeId method can only be accessed by users with the User role.
- All other methods require the Admin role.
Frontend Tasks (React Native)
- Aesthetic considerations are unnecessary, focus on functionality as u can see in the mockup
Login Screen:
- Include a Google Sign-In button to authenticate users.
- Authenticate via Keycloak using social login without displaying Keycloak’s login page (API-based authentication only).
Home Screen:
- Display the user's first and last name from their Google account upon successful login.
- If the user has the Admin role (assigned manually in Keycloak), fetch recipes via the getAllRecipes endpoint of the recipe service. This data should only be retrieved through the Gateway Server and displayed as a list.
- Logout Button: Accessible to all users regardless of role.
- Implementing a security layer for the Java Spring Boot microservice backend
- create a minimalistic react-native app and integrate the login functionality
- the google user should be persisted via a backend functionality in the mongodb, if the user logs in
- Integrate the login functionality
- minimalistic description for how to configure KeyCloak and Google for usage
INFO:
- NO keycloak, mongodb, google instance is provided, just use a local instance for developing reasons
- NO react-native app will be provided
- the mongodb data will be provided as mongodump
- the spring boot java microservices backend files with the following services will be provided:
-- configserver
-- eurekaserver
-- gatewayserver
-- recipeservice
Backend Tasks in Detail:
Secure Recipe Service Access:
- Ensure the Recipe Service can only be accessed via the Gateway Server.
- Access must be restricted to users authenticated through Google Sign-In.
Role-Based Access Control:
- The getRecipeId method can only be accessed by users with the User role.
- All other methods require the Admin role.
Frontend Tasks (React Native)
- Aesthetic considerations are unnecessary, focus on functionality as u can see in the mockup
Login Screen:
- Include a Google Sign-In button to authenticate users.
- Authenticate via Keycloak using social login without displaying Keycloak’s login page (API-based authentication only).
Home Screen:
- Display the user's first and last name from their Google account upon successful login.
- If the user has the Admin role (assigned manually in Keycloak), fetch recipes via the getAllRecipes endpoint of the recipe service. This data should only be retrieved through the Gateway Server and displayed as a list.
- Logout Button: Accessible to all users regardless of role.