From b87c2b6f7bf863fc1175fc4fafa38fd1527d6667 Mon Sep 17 00:00:00 2001 From: MathewFrancis Date: Fri, 9 May 2025 15:56:06 +0530 Subject: [PATCH] Entity for user added --- MySQL_conf_pbx/test1/db_asterisk/security.sql | 94 ++++++++++++++++++ .../test1/mariadb_data/asterisk_db/roles.frm | Bin 0 -> 1467 bytes .../test1/mariadb_data/asterisk_db/roles.ibd | Bin 0 -> 81920 bytes .../test1/mariadb_data/asterisk_db/user.frm | Bin 0 -> 1609 bytes .../test1/mariadb_data/asterisk_db/user.ibd | Bin 0 -> 81920 bytes .../mariadb_data/asterisk_db/user_roles.frm | Bin 0 -> 1446 bytes .../mariadb_data/asterisk_db/user_roles.ibd | Bin 0 -> 81920 bytes .../test1/mariadb_data/ddl_recovery.log | Bin 9 -> 16384 bytes MySQL_conf_pbx/test1/mariadb_data/ib_logfile0 | Bin 100663296 -> 100663296 bytes .../config/CezenLoginSecurityChain.java | 11 ++ .../example/cezenPBX/entity/user/Role.java | 64 ++++++++++++ .../cezenPBX/entity/user/UserEntity.java | 77 ++++++++++++++ 12 files changed, 246 insertions(+) create mode 100644 MySQL_conf_pbx/test1/db_asterisk/security.sql create mode 100644 MySQL_conf_pbx/test1/mariadb_data/asterisk_db/roles.frm create mode 100644 MySQL_conf_pbx/test1/mariadb_data/asterisk_db/roles.ibd create mode 100644 MySQL_conf_pbx/test1/mariadb_data/asterisk_db/user.frm create mode 100644 MySQL_conf_pbx/test1/mariadb_data/asterisk_db/user.ibd create mode 100644 MySQL_conf_pbx/test1/mariadb_data/asterisk_db/user_roles.frm create mode 100644 MySQL_conf_pbx/test1/mariadb_data/asterisk_db/user_roles.ibd create mode 100644 MySQL_conf_pbx/test1/springCezenPBX/src/main/java/com/example/cezenPBX/config/CezenLoginSecurityChain.java create mode 100644 MySQL_conf_pbx/test1/springCezenPBX/src/main/java/com/example/cezenPBX/entity/user/Role.java create mode 100644 MySQL_conf_pbx/test1/springCezenPBX/src/main/java/com/example/cezenPBX/entity/user/UserEntity.java diff --git a/MySQL_conf_pbx/test1/db_asterisk/security.sql b/MySQL_conf_pbx/test1/db_asterisk/security.sql new file mode 100644 index 0000000..47c5b10 --- /dev/null +++ b/MySQL_conf_pbx/test1/db_asterisk/security.sql @@ -0,0 +1,94 @@ +USE asterisk_db; + +SHOW DATABASES; + +SHOW TABLES; + + +SELECT * FROM `ps_endpoints`; + +DELETE FROM `ps_endpoints` WHERE `id` = '1004'; + +SELECT * FROM `extensions_table`; +DESCRIBE `extensions_table`; + +ALTER TABLE `extensions_table` +ADD CONSTRAINT `extension_table_unique_val_two_check` UNIQUE (`exten`, `appdata`); + + +ALTER TABLE `extensions_table` +DROP INDEX `extension_table_unique_val`; + + +ALTER TABLE `extensions_table` +ADD CONSTRAINT `extension_table_unique_val` UNIQUE (`exten`, `appdata`, `priority`); + +DELETE FROM `extensions_table` WHERE priority = 4 and exten = "1005" ; +DELETE FROM `extensions_table` WHERE exten = "1005" OR exten = "1004"; + +DELETE FROM `ps_endpoints` WHERE id = "1004" OR id = "1005"; +DELETE FROM `extensions_table` WHERE exten = "1004" OR exten = "1005"; + +DELETE FROM `ps_auths` WHERE id = "1004" OR id = "1005"; +DELETE FROM `ps_aors` WHERE id = "1004" OR id = "1005"; + +SELECT * FROM `extensions_table` WHERE app = "Dial"; +SELECT * FROM extensions_table WHERE context = 'default' AND exten = '1005'; +SELECT * FROM extensions_table WHERE exten = '1004' AND context = 'default'; + + + +SELECT * FROM `ps_endpoints`; +SELECT * FROM `extensions_table`; +-- +SELECT * FROM ps_auths; +SELECT * FROM ps_aors; +DESCRIBE `ps_auths`; +DESCRIBE `ps_aors`; +DESCRIBE `extensions_table`; + +INSERT INTO `ps_aors`(`id`,`max_contacts`) VALUES ("1004", 1); +INSERT INTO `ps_auths`(`id`, `auth_type`, `username`, `password`, `md5_cred`, `realm`) VALUES("1004", "userpass", "1004", "12345", null, null); + + + + +-- USER ROLES ROLE GOES HERE +CREATE TABLE `roles`( +`role_id` INTEGER NOT NULL AUTO_INCREMENT, +`role_name` VARCHAR(20) UNIQUE NOT NULL, +CONSTRAINT `roles_pk` PRIMARY KEY (`role_id`) +)ENGINE = 'Innodb' AUTO_INCREMENT = 1, DEFAULT CHARSET 'latin1'; + +DESCRIBE `roles`; + + +CREATE TABLE `user_roles`( +`u_id` INTEGER NOT NULL, +`role_id` INTEGER NOT NULL, +CONSTRAINT `user_roles_pk` PRIMARY KEY(`u_id`,`role_id`) +)ENGINE = 'Innodb' AUTO_INCREMENT = 1, DEFAULT CHARSET 'latin1'; + + +-- foreign key to be added to this table in alter table form +CREATE TABLE `user`( +`u_id` INTEGER NOT NULL AUTO_INCREMENT, +`user_name` VARCHAR(70) UNIQUE NOT NULL, +`password` VARCHAR(68) NOT NULL, +-- fk to uder_account +CONSTRAINT `user_table_pk` PRIMARY KEY(`u_id`) +)ENGINE = 'Innodb', AUTO_INCREMENT = 1, DEFAULT CHARSET 'latin1'; + + +ALTER TABLE `user_roles` ADD CONSTRAINT `user_lones_U_fk_to_user` FOREIGN KEY(`u_id`) REFERENCES `user`(`u_id`); +ALTER TABLE `user_roles` ADD CONSTRAINT `user_lones_R_fk_to_user` FOREIGN KEY(`role_id`) REFERENCES `roles`(`role_id`); +DESC `user_roles`; + + +INSERT `roles`(`role_name`) VALUES ('ROLE_admin'); + + + + + + diff --git a/MySQL_conf_pbx/test1/mariadb_data/asterisk_db/roles.frm b/MySQL_conf_pbx/test1/mariadb_data/asterisk_db/roles.frm new file mode 100644 index 0000000000000000000000000000000000000000..9ee21f921790f0905abf017c4e542758018c576e GIT binary patch literal 1467 zcmeyz$i*YZ5XHdAu$z^E;SsYW0~|2fFmN(307V%XIADU0m>C%IHZU>>zyufs^lGAf zbk+-gSbD~yri}eDA1f0BLn;dc0~3%I0V-nwn$5t#*Z?G@fgBB>AV`3z0c5g+2*dw? zAWvV%pveD4`8lcad5O8H|A7*tU^E0qLtw~;02_m6US7V76T|~yjA5WGKY{_UEM$-e uVo7k32nmP)1~Ej4aDxg(X$F1<24+ZMD*`Tg9e^tMfdY`iF*60ZkOTm1a3xg$ literal 0 HcmV?d00001 diff --git a/MySQL_conf_pbx/test1/mariadb_data/asterisk_db/roles.ibd b/MySQL_conf_pbx/test1/mariadb_data/asterisk_db/roles.ibd new file mode 100644 index 0000000000000000000000000000000000000000..8b3f54553a69a3939037ba3ebe1946e06a16786d GIT binary patch literal 81920 zcmeIuF#!Mo0K%a4Pi+kkh(KY$fB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ Q0|pEjFkrxd0Rs;M13(V|0RR91 literal 0 HcmV?d00001 diff --git a/MySQL_conf_pbx/test1/mariadb_data/asterisk_db/user.frm b/MySQL_conf_pbx/test1/mariadb_data/asterisk_db/user.frm new file mode 100644 index 0000000000000000000000000000000000000000..bb1d28e6ab9885f54965b7054336a2cf55a5d6bf GIT binary patch literal 1609 zcmeyz$i*YZ5XHdA;K|0o@Q8T=0~|2fFmN(3u!8s;Fu_O63=DZ27#Rd$0t^DJepj4z z)(d`Edd8xrjQuemD-#359To-#CLk>WRK@}{n}LC`0Z2*%IT{RZU;(BEkjV~i4F3ay zJbfL5BL9~brxwNMCFZ97hZ{c17!85Z5Eu;sVncw9!80!}-^B@{K9?~URP>Bs04%K; zrULN<1}S(b1Tcuf*$mvEvRImdpMilHQpUT13w#Hl3Vw)y3xf}k0~7dP8lRbhR8kit N78jT27p44X000qOELs2n literal 0 HcmV?d00001 diff --git a/MySQL_conf_pbx/test1/mariadb_data/asterisk_db/user.ibd b/MySQL_conf_pbx/test1/mariadb_data/asterisk_db/user.ibd new file mode 100644 index 0000000000000000000000000000000000000000..8b3f54553a69a3939037ba3ebe1946e06a16786d GIT binary patch literal 81920 zcmeIuF#!Mo0K%a4Pi+kkh(KY$fB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ Q0|pEjFkrxd0Rs;M13(V|0RR91 literal 0 HcmV?d00001 diff --git a/MySQL_conf_pbx/test1/mariadb_data/asterisk_db/user_roles.frm b/MySQL_conf_pbx/test1/mariadb_data/asterisk_db/user_roles.frm new file mode 100644 index 0000000000000000000000000000000000000000..1a6a76cf719ded1ec3247e985821c3024726921b GIT binary patch literal 1446 zcmeyz$i*YZ5XHdAu#A;~;Sn<@0~{~~GjK3407V%_FsK5fW6{rp- z@IN5P)7LR5@_%V@YEgVneqL&Ed{BH^c6>>GJV@w2+|E(PXb6mkz<`GUQifz>@XX80 zcX5KaDUdM`l(R=L02O&+K+MU&4-bU^un3gP4Js9-9e_M$Na4!O04^7y0{=_nGgJN- K<>#b=Xa)f6qbybc literal 0 HcmV?d00001 diff --git a/MySQL_conf_pbx/test1/mariadb_data/asterisk_db/user_roles.ibd b/MySQL_conf_pbx/test1/mariadb_data/asterisk_db/user_roles.ibd new file mode 100644 index 0000000000000000000000000000000000000000..8b3f54553a69a3939037ba3ebe1946e06a16786d GIT binary patch literal 81920 zcmeIuF#!Mo0K%a4Pi+kkh(KY$fB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ Q0|pEjFkrxd0Rs;M13(V|0RR91 literal 0 HcmV?d00001 diff --git a/MySQL_conf_pbx/test1/mariadb_data/ddl_recovery.log b/MySQL_conf_pbx/test1/mariadb_data/ddl_recovery.log index 5e30b6d298935b23b6eee5c79d90efbcee948868..434b85ce8ff7d3aa34aeb4824aef83379d4d60ee 100644 GIT binary patch literal 16384 zcmeI&!Ab%_7{Ku_gM@_A2M7kbBxKSh?6~R_lB}@qrPHkD2IAtDqn>(zUZit9NN>># zbnGO#DrAekfczJBhxxvbkD1?Xn4QgX8Oc|K2LS{SKmY**5I_I{1Q0*~0R(neAd}Cg zHuqZn`8aSw?kxsB2q1s}0tg_000IagfB*srAh2@+nSw}i@ZWy;pKjap|C|3*)l{6O zuRY~E)uvX#-(`QGoO)f=T5j9-oQCVKa#1`Ct?|s`z>H&)ln3gj<>|()tM2suS&;lG tVEVnFs62h6J?++XTP>nCSj(oC!4v@m5I_I{1Q0*~0R#|0009K%0>3HBT|58) literal 9 QcmezOkDG}>z=DAR01_wyQUCw| diff --git a/MySQL_conf_pbx/test1/mariadb_data/ib_logfile0 b/MySQL_conf_pbx/test1/mariadb_data/ib_logfile0 index c39bc6742f86cfc1a6f8670ee2264e74be9a9681..a33bd14c2ecd3f6a8c0a157f4b0474a8688defb2 100644 GIT binary patch delta 30308 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 F{|6-6TsZ&$ delta 7424 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 Mu_*ojk~V7pe+;u{^8f$< diff --git a/MySQL_conf_pbx/test1/springCezenPBX/src/main/java/com/example/cezenPBX/config/CezenLoginSecurityChain.java b/MySQL_conf_pbx/test1/springCezenPBX/src/main/java/com/example/cezenPBX/config/CezenLoginSecurityChain.java new file mode 100644 index 0000000..b214d24 --- /dev/null +++ b/MySQL_conf_pbx/test1/springCezenPBX/src/main/java/com/example/cezenPBX/config/CezenLoginSecurityChain.java @@ -0,0 +1,11 @@ +package com.example.cezenPBX.config; + + +import org.springframework.context.annotation.Configuration; + +// this class will handel the routs that are protected and +// allow spring security to accept login details from our custom login page +@Configuration +public class CezenLoginSecurityChain { + +} diff --git a/MySQL_conf_pbx/test1/springCezenPBX/src/main/java/com/example/cezenPBX/entity/user/Role.java b/MySQL_conf_pbx/test1/springCezenPBX/src/main/java/com/example/cezenPBX/entity/user/Role.java new file mode 100644 index 0000000..154e0d9 --- /dev/null +++ b/MySQL_conf_pbx/test1/springCezenPBX/src/main/java/com/example/cezenPBX/entity/user/Role.java @@ -0,0 +1,64 @@ +package com.example.cezenPBX.entity.user; + +import jakarta.persistence.*; + +import java.util.Collection; + +@Entity +@Table(name = "role") +final public class Role { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "role_id") + private int id; + + //remember ROLE_ + @Column(name = "role_name") + private String role; + + //all employees under this role + @ManyToMany( + fetch = FetchType.LAZY, + cascade = { + //The detach operation removes the entity from the persistent context. When we use CascadeType.DETACH, the child entity will also get removed from the persistent context. + CascadeType.DETACH, + CascadeType.MERGE, + CascadeType.PERSIST, + CascadeType.REFRESH, + } + //cascade = CascadeType.ALL + ) + @JoinTable( + name = "user_roles", + joinColumns = @JoinColumn(name = "u_id"), + inverseJoinColumns = @JoinColumn(name = "role_id") + ) + private Collection employees; + + public Role(){} + + public Role(String role) { + this.role = role; + } + + public int getId() { + return id; + } + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + public Collection getEmployees() { + return employees; + } + + public void setEmployees(Collection employees) { + this.employees = employees; + } +} diff --git a/MySQL_conf_pbx/test1/springCezenPBX/src/main/java/com/example/cezenPBX/entity/user/UserEntity.java b/MySQL_conf_pbx/test1/springCezenPBX/src/main/java/com/example/cezenPBX/entity/user/UserEntity.java new file mode 100644 index 0000000..c10873b --- /dev/null +++ b/MySQL_conf_pbx/test1/springCezenPBX/src/main/java/com/example/cezenPBX/entity/user/UserEntity.java @@ -0,0 +1,77 @@ +package com.example.cezenPBX.entity.user; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import jakarta.persistence.*; + +import java.util.Collection; +import java.util.HashSet; + +@Entity +@Table(name = "user") +final public class UserEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "u_id") + private int id; + + @Column(name = "user_name") + private String userName; + + @JsonIgnore + @Column(name = "password") + private String password; + + //ROLE + @ManyToMany( + fetch = FetchType.LAZY, + cascade = { + //The detach operation removes the entity from the persistent context. When we use CascadeType.DETACH, the child entity will also get removed from the persistent context. + CascadeType.DETACH, + CascadeType.MERGE, + CascadeType.PERSIST, + CascadeType.REFRESH, + } + //cascade = CascadeType.ALL + ) + @JoinTable( + name = "user_roles", + joinColumns = @JoinColumn(name = "u_id"), + inverseJoinColumns = @JoinColumn(name = "role_id") + ) + private Collection roles; + + + public UserEntity(){} + + public UserEntity(String userName, String password) { + this.userName = userName; + this.password = password; + } + public int getId() { + return id; + } + public String getUserName() { + return userName; + } + public void setUserName(String userName) { + this.userName = userName; + } + public String getPassword() { + return password; + } + public void setPassword(String password) { + this.password = password; + } + public Collection getRoles() { + return roles; + } + + public void setARole(Role role){ + if(this.roles == null){ + this.roles = new HashSet(); + } + + this.roles.add(role); + } +}