package com.wangl.sshsimple.entity;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
@Entity
public class TbUser {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long userId;
private String userName;
private String userPassword;
private String pName;
private String phoneNo;
@ManyToMany(fetch=FetchType.EAGER)
private List roles;
public String getpName() {
return pName;
}
public void setpName(String pName) {
this.pName = pName;
}
public String getPhoneNo() {
return phoneNo;
}
public void setPhoneNo(String phoneNo) {
this.phoneNo = phoneNo;
}
public List<TbRole> getRoles() {
return roles;
}
public void setRoles(List<TbRole> roles) {
this.roles = roles;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
@Override
public String toString() {
return "TbUser [userId=" + userId + ", userName=" + userName + "]";
}
}
package com.wangl.sshsimple.entity;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
@Entity
public class TbRole {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long roleId;
private String roleName;
private String description;
@ManyToMany(fetch=FetchType.EAGER)
private List functions;
@ManyToMany(mappedBy="roles")
private List users;
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public List<TbFunction> getFunctions() {
return functions;
}
public void setFunctions(List<TbFunction> functions) {
this.functions = functions;
}
public List<TbUser> getUsers() {
return users;
}
public void setUsers(List<TbUser> users) {
this.users = users;
}
public Long getRoleId() {
return roleId;
}
public void setRoleId(Long roleId) {
this.roleId = roleId;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
}
package com.wangl.sshsimple.entity;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
@Entity
public class TbFunction {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long functionId;
private String functionName;
private String url;
private String memo;
@ManyToMany(mappedBy="functions")
private List roles;
public List<TbRole> getRoles() {
return roles;
}
public void setRoles(List<TbRole> roles) {
this.roles = roles;
}
public String getMemo() {
return memo;
}
public void setMemo(String memo) {
this.memo = memo;
}
public Long getFunctionId() {
return functionId;
}
public void setFunctionId(Long functionId) {
this.functionId = functionId;
}
public String getFunctionName() {
return functionName;
}
public void setFunctionName(String functionName) {
this.functionName = functionName;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
@Override
public String toString() {
return "TbFunction [functionId=" + functionId + ", functionName=" + functionName + ", url=" + url + "]";
}
}
package com.wangl.sshsimple.dao;
import java.util.List;
import java.util.Map;
import org.hibernate.Session;
import org.springframework.stereotype.Repository;
import com.wangl.sshsimple.entity.TbRole;
import com.wangl.sshsimple.entity.TbUser;
@Repository
public class TbUserDaoImp extends GenericDaoImp implements TbUserDao{
public TbUserDaoImp() {
super(TbUser.class);
}
public List<TbUser> findByCondition(Map condition) {
String hql="from TbUser where 1=1";
if(condition.size()>0){
if(condition.containsKey("userName")){
hql+=" and userName like '%"+condition.get("userName")+"%'";
}
if(condition.containsKey("pName")){
hql+=" and pName like '%"+condition.get("pName")+"%'";
}
if(condition.containsKey("phoneNo")){
hql+=" and phoneNo like '%"+condition.get("phoneNo")+"%'";
}
if(condition.containsKey("loginUserName")){
hql+=" and userName='"+condition.get("loginUserName")+"'";
}
if(condition.containsKey("loginPassword")){
hql+=" and userPassword='"+condition.get("loginPassword")+"'";
}
}
return (List<TbUser>) this.getHibernateTemplate().find(hql);
}
}
package com.wangl.sshsimple.dao;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
public class GenericDaoImp extends HibernateDaoSupport implements GenericDao {
//用添加属性这种方法拿到泛型的具体类型
private Class entityClass;
public GenericDaoImp(Class<T> entityClass){
this.entityClass = entityClass;
}
public void add(T entity) {
this.getHibernateTemplate().save(entity);
}
public void update(T entity) {
this.getHibernateTemplate().update(entity);
}
public void delete(T entity) {
this.getHibernateTemplate().delete(entity);
}
public List<T> search(Map condition) {
return (List<T>)this.getHibernateTemplate().find("");
}
public List<T> findAll() {
String hql="from "+entityClass.getName();
return (List<T>) this.getHibernateTemplate().find(hql);
}
public T get(K id) {
return this.getHibernateTemplate().get(entityClass, id);
}
}
package com.wangl.sshsimple.action;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.wangl.sshsimple.entity.TbFunction;
import com.wangl.sshsimple.entity.TbRole;
import com.wangl.sshsimple.entity.TbUser;
import com.wangl.sshsimple.service.TbRoleService;
import com.wangl.sshsimple.service.TbUserService;
public class LoginAction {
private String userName;
private String userPassword;
private TbUserService tbUserService;
private TbRoleService tbRoleService;
public void setTbRoleService(TbRoleService tbRoleService) {
this.tbRoleService = tbRoleService;
}
public void setTbUserService(TbUserService tbUserService) {
this.tbUserService = tbUserService;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
public String login(){
//登录成功后将user放入session
//将用户权限放入session
if(userName!=null&& !userName.equals("") &&userPassword!=null&& !userPassword.equals("")){
HttpSession sess=ServletActionContext.getRequest().getSession();
Map condition = new HashMap();
condition.put("loginUserName", userName);
condition.put("loginPassword", userPassword);
List<TbUser> tbUsers=tbUserService.findByCondition(condition);
if(tbUsers!=null&&tbUsers.size()>0){
for(TbUser u:tbUsers){
List<TbRole> roles=u.getRoles();
if(roles.size()>0){
for(TbRole r:roles){
List<TbFunction> functions=r.getFunctions();
if(functions.size()>0){
sess.setAttribute("functions", functions);
}
}
}
sess.setAttribute("tbUser", u);
}
return "success";
}
}
return "notLoged";
}
}