39c721a31ea30f90d6a07915a02c2ddc360260e4
art-get-arrays-jwt-springsecurity-angular
JSON Web Token (JWT) with Spring Security And Angular - Tutorial from Get Arrays (Udemy)
Notes
Section 19: HTML Template
134. Configuring routes
- Generate AppRoutingModule
ng generate module app-routing --flat --module=app
- Modify
app-routing.module.ts
Section 29: Security Management - Front End
199. Unsubscribe using Subsink library
- Install SubSink
npm install subsink --save
- Use it
Section 30: Deployment
202. Creating EC2 instance
Create EC2 instance with custom security rules
- open port 80, 5000, 443(ssh) for everyone
203. Configure EC2 instance
- Install apache web server
sudo service httpd start-> service not foundsudo yum -y install httpd-> OKsudo service httpd status-> running- Go to EC2 public URL -> Apache Server Default Page
- Test work
- Navigate to server content
cd /var/www/html
- create sample html file
sudo nano index.html<h1>Welcome to AWS Apache server</h1>- Ctrl+O
- Ctrl+X
- Go to EC2 public URL -> Our web page
- Navigate to server content
- Install Java
sudo amazon-linux-extras install java-openjdk11
- Install MySQL
sudo wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpmsudo wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpmsudo yum localinstall mysql57-community-release-el7-11.noarch.rpmsudo yum install mysql-community-server
- Start MySQL
sudo systemctl start mysqld.servicesudo systemctl status mysqld.service- Check for temporarily root password
sudo grep 'temporary password' /var/log/mysqld.logA temporary password is generated for root@localhost: idy7c#>jEetF
sudo mysql_secure_installation- new password:
Supp0rtP0rta! - No for other questions
- new password:
- Configure mysql
sudo mysql -u root -p-> enter passwordshow databases;create database support_portal;create user 'support_portal_user'@'localhost' identified by 'Supp0rt_Porta!_P@ssword';grant all privileges on support_portal.* to 'support_portal_user'@'localhost';
206. Running in AWS
- Copy JAR file to EC2 home folder (secured copy)
scp -i "certified-dev-assoc-course.pem" "C:\Users\Admin\IdeaProjects\Study\GetArrays\art-get-arrays-jwt-springsecurity-angular\support-portal-backend\target\support-portal.jar" ec2-user@ec2-13-51-129-89.eu-north-1.compute.amazonaws.com:~/
- Set Environment Variables
export PORTAL_MAIL_USERNAME="{{your_gmail_username}}"export PORTAL_MAIL_PASSWORD="{{your_gmail_password}}"export SPRING_PROFILES_ACTIVE="aws-local"
- Start java app
java -jar support-portal.jar
- Run as executable
sudo chmod 755 support-portal.jarls -lh support-portal.jar-> view permissions./support-portal.jar
207. Deploying Angular Application
- Build Angular Application
ng build --prod
- Upload dist/support-portal-frontend folder to EC2
scp -r -i "certified-dev-assoc-course.pem" "C:\Users\Admin\IdeaProjects\Study\GetArrays\art-get-arrays-jwt-springsecurity-angular\support-portal-frontend\dist\*" ec2-user@ec2-13-51-129-89.eu-north-1.compute.amazonaws.com:~/
- Move files to httpd directory
sudo cp ~/support-portal-frontend/* /var/www/html
208. Creating Unix Service
- Create dedicated user to run this app as a service
- without ability to login
sudo adduser --home /var/lib/supporthome --shell /sbin/nologin supportusersudo cat /etc/passwrd
- Add access for the system processes to access home folder's content
cd /var/libls -lh-> only supportuser has accesssudo chmod 755 /var/lib/supporthome- owner has full access 7 (rwx) - read write execute
- others - 5 (r-x) - read and execute
- Copy jar into supportuser home
cd ~sudo cp support-portal.jar /var/lib/supporthome
- Change ownership of jar file
ls -lh-> owner is rootsudo chown supportuser:supportuser support-portal.jarls -lh-> owner is supportuser
- Change permission to read and execute only for supportuser
sudo chmod 500 support-portal.jar
- Protect the file from accident deletion
sudo chattr +i support-portal.jar- change attribute+i(add immutable)rm support-portal.jar->cannot remove ‘support-portal.jar’: Operation not permitted
sudo rm -f support-portal.jar->cannot remove ‘support-portal.jar’: Operation not permitted
- (for deletion we need first remove immutability -
sudo chattr -i support-portal.jar)
- Create symbolic link
sudo ln -s /var/lib/supporthome/support-portal.jar /etc/init.d/supportapiln- link-s- symbolic/etc/init.d- init directorysupportapi- name of service
cd /etc/init.dls-> we have supportapi
- Start service
sudo service supportapi startsudo service supportapi status
- View logs
cd /var/log->lscat supportapi.log- or
sudo vim supportapi.log-> :qa for quit- or
sudo tail -f supportapi.log
Description
Languages
HTML
38.2%
Java
26.2%
TypeScript
20.7%
CSS
9.3%
SCSS
5.2%
Other
0.4%