Java tutorial
/** * Copyright 2014 tgrape Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package ph.fingra.statisticsweb.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import ph.fingra.statisticsweb.common.MemberJoinstatus; import ph.fingra.statisticsweb.common.MemberStatus; import ph.fingra.statisticsweb.dao.MemberDao; import ph.fingra.statisticsweb.domain.Member; import ph.fingra.statisticsweb.security.FingraphUser; @Service public class MemberServiceImpl implements MemberService { @Autowired private MemberDao memberDao; @Autowired private PasswordEncoder passwordEncoder; public Member get(int memberid) { return memberDao.findById(memberid); } public Member get(String email) { return memberDao.findByEmail(email); } public void create(Member member) { member.setPassword(passwordEncoder.encode(member.getPassword())); member.setStatus(MemberStatus.ACTIVE.getValue()); member.setJoinstatus(MemberJoinstatus.WAIT.getValue()); memberDao.insert(member); } public void update(Member member) { if (!StringUtils.isEmpty(member.getPassword())) { member.setPassword(passwordEncoder.encode(member.getPassword())); } memberDao.update(member); UserDetails newPrincipal = new FingraphUser(get(member.getMemberid())); Authentication currentAuth = SecurityContextHolder.getContext().getAuthentication(); UsernamePasswordAuthenticationToken newAuth = new UsernamePasswordAuthenticationToken(newPrincipal, currentAuth.getCredentials(), newPrincipal.getAuthorities()); newAuth.setDetails(currentAuth.getDetails()); SecurityContextHolder.getContext().setAuthentication(newAuth); } public void updateByAdmin(Member member) { if (!StringUtils.isEmpty(member.getPassword())) { member.setPassword(passwordEncoder.encode(member.getPassword())); } memberDao.updateByAdmin(member); } public void updateStatus(Member member) { memberDao.updateStatus(member); } public void updateJoinstatus(Member member) { memberDao.updateJoinstatus(member); } public void updateMemberLastLoginTime(Member member) { memberDao.updateMemberLastLoginTime(member); } public boolean duplicateEmailCheck(String email) { return memberDao.countByEmail(email) == 0 ? false : true; } public void resetPassword(String email) { Member member = get(email); member.setStatus(MemberStatus.RESET_REQUESTED.getValue()); memberDao.updateStatus(member); } @Override public List<Member> getList() { return memberDao.getList(); } }