Java tutorial
/* * Copyright 2005-2015 shopxx.net. All rights reserved. * Support: http://3936242.01p.com/ * License: http://3936242.01p.com/license */ package net.shopxx.service.impl; import java.util.ArrayList; import java.util.List; import java.util.UUID; import javax.annotation.Resource; import net.shopxx.Principal; import net.shopxx.dao.AdminDao; import net.shopxx.entity.Admin; import net.shopxx.entity.Role; import net.shopxx.service.AdminService; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.lang.RandomStringUtils; import org.apache.shiro.SecurityUtils; import org.apache.shiro.subject.Subject; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service("adminServiceImpl") public class AdminServiceImpl extends BaseServiceImpl<Admin, Long> implements AdminService { @Resource(name = "adminDaoImpl") private AdminDao adminDao; @Transactional(readOnly = true) public boolean usernameExists(String username) { return adminDao.usernameExists(username); } @Transactional(readOnly = true) public Admin findByUsername(String username) { return adminDao.findByUsername(username); } @Transactional(readOnly = true) public List<String> findAuthorities(Long id) { List<String> authorities = new ArrayList<String>(); Admin admin = adminDao.find(id); if (admin != null && admin.getRoles() != null) { for (Role role : admin.getRoles()) { if (role != null && role.getAuthorities() != null) { authorities.addAll(role.getAuthorities()); } } } return authorities; } @Transactional(readOnly = true) public boolean isAuthenticated() { Subject subject = SecurityUtils.getSubject(); if (subject != null) { return subject.isAuthenticated(); } return false; } @Transactional(readOnly = true) public Admin getCurrent() { Subject subject = SecurityUtils.getSubject(); if (subject != null) { Principal principal = (Principal) subject.getPrincipal(); if (principal != null) { return adminDao.find(principal.getId()); } } return null; } @Transactional(readOnly = true) public String getCurrentUsername() { Subject subject = SecurityUtils.getSubject(); if (subject != null) { Principal principal = (Principal) subject.getPrincipal(); if (principal != null) { return principal.getUsername(); } } return null; } @Transactional(readOnly = true) @Cacheable(value = "loginToken") public String getLoginToken() { return DigestUtils.md5Hex(UUID.randomUUID() + RandomStringUtils.randomAlphabetic(30)); } @Override @Transactional @CacheEvict(value = "authorization", allEntries = true) public Admin save(Admin admin) { return super.save(admin); } @Override @Transactional @CacheEvict(value = "authorization", allEntries = true) public Admin update(Admin admin) { return super.update(admin); } @Override @Transactional @CacheEvict(value = "authorization", allEntries = true) public Admin update(Admin admin, String... ignoreProperties) { return super.update(admin, ignoreProperties); } @Override @Transactional @CacheEvict(value = "authorization", allEntries = true) public void delete(Long id) { super.delete(id); } @Override @Transactional @CacheEvict(value = "authorization", allEntries = true) public void delete(Long... ids) { super.delete(ids); } @Override @Transactional @CacheEvict(value = "authorization", allEntries = true) public void delete(Admin admin) { super.delete(admin); } }