/* * Copyright (c) 2010-2017, b3log.org & hacpai.com * * 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 org.b3log.solo.processor.console.common; import org.b3log.latke.ioc.LatkeBeanManager; import org.b3log.latke.ioc.Lifecycle; import org.b3log.latke.ioc.inject.Named; import org.b3log.latke.ioc.inject.Singleton; import org.b3log.latke.servlet.HTTPRequestContext; import org.b3log.latke.servlet.advice.BeforeRequestProcessAdvice; import org.b3log.latke.servlet.advice.RequestProcessAdviceException; import org.b3log.latke.servlet.advice.RequestReturnAdviceException; import org.b3log.solo.service.UserQueryService; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Map; /** * The common auth check before advice for admin console. * * @author <a href="mailto:wmainlove@gmail.com">Love Yao</a> * @version 1.0.0.1, Jal 18, 2013 */ @Named @Singleton public class ProcessAuthAdvice extends BeforeRequestProcessAdvice { @Override public void doAdvice(final HTTPRequestContext context, final Map<String, Object> args) throws RequestProcessAdviceException { final LatkeBeanManager beanManager = Lifecycle.getBeanManager(); final UserQueryService userQueryService = beanManager.getReference(UserQueryService.class); if (!userQueryService.isLoggedIn(context.getRequest(), context.getResponse())) { try { context.getResponse().sendError(HttpServletResponse.SC_FORBIDDEN); } catch (final IOException e) { throw new RuntimeException(e); } throw new RequestReturnAdviceException(null); } } }